【问题标题】:Hibernate + C3p0 + mysql休眠 + C3p0 + mysql
【发布时间】:2016-05-13 15:42:14
【问题描述】:

我有一个使用休眠和 C3P0 进行连接池的应用程序设置。每当我尝试访问该应用程序时,我都会收到 404 错误。在日志中,我看到 mysql 已阻止该应用程序用户。尽管做了刷新主机,我仍然得到同样的例外。在mysql机器上做netstat显示有很多入站连接试图连接处于等待状态。

     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)

然后我尝试刷新主机。用于登录数据库的凭据是正确的。但是,每当访问应用程序时,我都会看到相同的异常。

【问题讨论】:

    标签: java mysql hibernate c3p0


    【解决方案1】:

    您可以通过在服务器启动时设置 max_connect_errors 来调整该值:

       mysqld_safe --max_connect_errors=10000 &
    

    或者:

      SET GLOBAL max_connect_errors=10000;
    

    【讨论】:

      【解决方案2】:

      我解决了这个问题。问题是xml文件中定义的所有属性都没有在属性文件中定义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-15
        相关资源
        最近更新 更多