我正在使用以下代码与我的applicationcontext文件中指定的Hibernate和Java进行数据库连接,
<bean id="DataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=UTF-8" />
<property name="user" value="admin" />
<property name="password" value="pass" />
<property name="maxPoolSize" value="10" />
<property name="maxStatements" value="10" />
<property name="minPoolSize" value="5" />
<property name="initialPoolSize" value="10" />
<property name="maxIdleTime" value="120" />
<property name="numHelperThreads" value="1" />
<property name="preferredTestQuery" value="SELECT 1" />
</bean>
一段时间后,它在服务器上出现以下错误
com.mchange.v2.resourcepool.BasicResourcePool $ AcquireTask run警告:com.mchange.v2.resourcepool.BasicResourcePool $ AcquireTask@198c333 -
收购尝试失败!!!清除待处理的收购。在尝试获取所需的新资源时,我们未能成功超过允许的最大获取尝试次数(30)。上次获取尝试异常:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:用户admin已经超过'max_user_connections'活动连接
任何人都可以让我知道我哪里出错了
看起来您的数据库存在配置问题。您的数据库可能无法让同一个用户10同时连接。也许你可以尝试将maxPoolSize
和minPoolSize
减少到1,这样你就可以看到你真正的问题。(因为你看到的异常只是最后一个例外)