解决方案 »

  1.   


    另外一个日志文件:
    2014-09-04 12:04:54,389 [// -  - ] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@153a48d -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
    2014-09-04 12:04:54,389 [// -  - ] WARN  com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@153a48d -- APPARENT DEADLOCK!!! Complete Status: 
    Managed Threads: 3
    Active Threads: 3
    Active Tasks: 
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@17202c0 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@12b2f8 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1a3f55e (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
    Pending Tasks: 
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@141f864
    Pool thread stack traces:
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:150)
    java.net.SocketInputStream.read(SocketInputStream.java:121)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2452)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2906)
    com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2895)
    com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3438)
    com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1951)
    com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2101)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2548)
    com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2477)
    com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1422)
    com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3804)
    com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3362)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2062)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
    com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:150)
    java.net.SocketInputStream.read(SocketInputStream.java:121)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2452)
    com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:591)
    com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1070)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
    com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
    java.net.SocketInputStream.socketRead0(Native Method)
    java.net.SocketInputStream.read(SocketInputStream.java:150)
    java.net.SocketInputStream.read(SocketInputStream.java:121)
    com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
    com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
    com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
    com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2452)
    com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:591)
    com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1070)
    com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2048)
    com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:723)
    com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
    sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
    sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
    com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
    com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
    com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
    com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
    com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
    com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
    com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
    com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
    com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
      

  2.   

      开始用的dbcp,也是出问题. 后来换成jdbc + c3p0 + springmvc了.  时间一长,就出问题了. ...  
      

  3.   

      只用了spring的调度..    您看出什么问题了没有? 
      

  4.   

    如果只用了spring的调度就不清楚了。如果用普通的spring控制事务,并发量稍微有几个就可能死锁数据源
      

  5.   

    如果只用了spring的调度就不清楚了。如果用普通的spring控制事务,并发量稍微有几个就可能死锁数据源有木有什么解决方案呢?
      

  6.   

    如果只用了spring的调度就不清楚了。如果用普通的spring控制事务,并发量稍微有几个就可能死锁数据源有木有什么解决方案呢?
    我的方案就是不用spring,想在spring框架内解决不行,起码目前是无解。
      

  7.   

    别求人了,没用,这无解。因为如此,我早抛弃spring了