Cannot get a connection, pool exhausted

xiaops2005 2008-11-05 03:41:15
<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName">
<value>${datasource.driverClassName}</value>
</property>
<property name="url">
<value>${datasource.url}</value>
</property>
<property name="username"><value>${datasource.username}</value></property>
<property name="password"><value>${datasource.password}</value></property>
<property name="maxActive"><value>${datasource.maxActive}</value></property>
<property name="maxIdle"><value>${datasource.maxIdle}</value></property>
<property name="maxWait"><value>${datasource.maxWait}</value></property>
<property name="defaultAutoCommit"><value>${datasource.defaultAutoCommit}</value></property>
</bean>

${datasource.maxActive}的值为10,每次插入第10条数据就报org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted错误,该怎么解决啊?
...全文
709 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
每执行一次sql语句都要产生Audit login事件,语句执行后产生
Audit logout事件。说明每一次tomcat都是重新打开新的连接。
2 问题解决
tomcat 的数据源定义提供了三个参数:
a. 如果设为true则tomcat自动检查恢复重新利用,没有正常关闭的Connection.(默认是false)
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
b. 设定连接在多少秒内被认为是放弃的连接,即可进行恢复利用。
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
c. 输出回收的日志,可以详细打印出异常从而发现是在那里发生了泄漏
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
  • 打赏
  • 举报
回复

这是:tomcat 连接池泄露的问题
xiaops2005 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liaoyi_ipanel 的回复:]
你应该配置spring事务来管理session;
如果不配置的话,你又没手动关session的话,
使用${datasource.maxActive}次就不能再接着使用了;

或配置spring事务,
或手动关闭session;
最好取第一种.

[/Quote]

应该怎样配置spring事务来管理啊?
xiaops2005 2008-11-05
  • 打赏
  • 举报
回复
是啊,改大点也有用完的时候。

我在web.xml里这样配了。
<filter>
<filter-name>hibernateFilter</filter-name>
<filter-class>
com.jteap.core.web.OpenSessionInViewFilter
</filter-class>
<init-param>
<param-name>singleSession</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>hibernateFilter</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
liaoyi_ipanel 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yctang 的回复:]
连接用完了,把最大连接数改大点呗
[/Quote]
改大点能解决问题?
改大点还不是得用完的时候?
........
耶律火柴 2008-11-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liaoyi_ipanel 的回复:]
你应该配置spring事务来管理session;
如果不配置的话,你又没手动关session的话,
使用${datasource.maxActive}次就不能再接着使用了;

或配置spring事务,
或手动关闭session;
最好取第一种.
[/Quote]

估计是没配置也没自己用代码关闭。
liaoyi_ipanel 2008-11-05
  • 打赏
  • 举报
回复
http://download.csdn.net/source/649512
可到我的资源那去下spring配置看看.
yctang 2008-11-05
  • 打赏
  • 举报
回复
连接用完了,把最大连接数改大点呗
liaoyi_ipanel 2008-11-05
  • 打赏
  • 举报
回复
你应该配置spring事务来管理session;
如果不配置的话,你又没手动关session的话,
使用${datasource.maxActive}次就不能再接着使用了;

或配置spring事务,
或手动关闭session;
最好取第一种.

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧