【发布时间】:2012-08-01 12:34:09
【问题描述】:
我希望你能帮助我,我在生产环境中遇到错误...... 我正在运行带有 MySql 连接器版本 5.1.2 和 Apache 公共连接池版本 1.3 的 Spring 主应用程序 java 1.7。
我的spring数据源配置:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${db.driverClassName}" />
<property name="url" value="${db.url}" />
<property name="username" value="${db.username}" />
<property name="password" value="${db.password}" />
<property name="maxActive" value="100" />
<property name="maxWait" value="1000" />
<property name="poolPreparedStatements" value="true" />
</bean>
运行几个小时后,出现异常 org.apache.commons.dbcp.SQLNestedException: 无法获取连接,池错误 Timeout waiting for idle object
起初我以为有连接泄漏,在运行 netstat 检查数据库连接后,我发现每件事都得到了很好的管理,并且连接量保持得很好,因为它应该比 maxActive 值低得多...
更奇怪的是,在每个当前时刻,该主应用程序的 3 个实例都在运行,每个实例的业务逻辑配置不同,但每个实例的数据源配置都相同,问题是我只得到一个异常实例,而其他两个像往常一样从 DB 获取连接。
除了我的 Java 实例汇集来自 MySql 数据库的连接之外,还有更多与数据库通信的服务,但与数据库的总连接数比我的 MySql 配置中的低得多。
我阅读了有关该异常的相关帖子,但主要问题是连接泄漏,但就我而言,我很确定我没有任何问题。
感谢您的帮助....
【问题讨论】:
标签: mysql spring apache jdbc database-connection