Search code examples
javamysqlhibernatec3p0

Hibernate + C3p0 + mysql


I have a application set up that is using hibernate and C3P0 for connection pooling.Whenever I try to access the app I get 404 error.In the logs, I see mysql has blocked the app user. Despite doing flush hosts, I still get the same exception. Doing netstat on the mysql machine shows that there are many inbound connections trying to connect in wait state.

     com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2    WARN resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@64804446 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
     java.sql.SQLException: null,  message from server: "Host '10.1.1.76' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
              at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
              at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
              at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
              at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
              at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
              at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
              at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
              at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
              at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
              at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
              at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
              at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
              at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
              at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    [03-02-16 06:10:46:910 CST] com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0    WARN resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@6b7f48cf --                                                 Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
    java.sql.SQLException: null,  message from server: "Host '10.1.1.76' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
              at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
              at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
              at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
              at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
              at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
              at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
              at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
              at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
              at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
              at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
              at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
              at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
              at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
              at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    [03-02-16 06:10:46:908 CST] com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1    WARN resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@2bf45f28 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
    java.sql.SQLException: null,  message from server: "Host '10.1.1.76' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
              at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
              at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
              at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
              at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
              at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
              at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
              at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
              at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
              at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
              at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
              at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
              at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
              at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
              at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    [03-02-16 06:10:46:919 CST] localhost-startStop-1   ERROR util.JDBCExceptionReporter:78 - Connections could not be acquired from the underlying database!
    [03-02-16 06:11:16:436 CST] com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1    WARN resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@67c619c0 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
    java.sql.SQLException: null,  message from server: "Host '10.1.1.76' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
              at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
              at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
              at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
              at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
              at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
              at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
              at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
              at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
              at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
              at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
              at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
              at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
              at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
              at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
    [03-02-16 06:11:16:438 CST] com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2    WARN resourcepool.BasicResourcePool:1841 - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@740adfca -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: 
    java.sql.SQLException: null,  message from server: "Host '10.1.1.76' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1075)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
              at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:984)
              at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1104)
              at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2312)
              at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2122)
              at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:774)
              at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49)
              at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)
              at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
              at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
              at com.mysql.jdbc.Util.handleNewInstance(Util.java:409)
              at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:375)
              at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:289)
              at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:135)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)
              at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)
              at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)
              at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)
              at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)
              at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)
              at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)

I then try to flush hosts. The credentials used to login to the DB are correct. But still, I see the same exception whenever the app is being accessed.


Solution

  • I resolved the issue. The problem was all the properties defined in the xml file were not defined in the properties file.