在web应用里,应该显式的关闭结果集,声明和连接(esultSet,Statement,Connection)。
相反,则会导致这些资源不能再利用,出现连接池泄露问题,最终导致无法访问web应用。
在Tomcat4.1里,有一种解决方法。就是通过设置Jakarta-Commons DBCP ,来防止连接池泄露。
配置情况就是在server.xml的DBCP DataSource 的Resource 元素的ResourceParams的元素标签里,
设定removeAbandoned值为true。例如如下设定:
<Resource name="jdbc/epoch" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/epoch">
...
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
...
</ResourceParams>
</Resource>
Tomcat4.1的默认removeAbandoned的值是false。
还有一个参数removeAbandonedTimeout可以设置一个数据库连接的最长闲置时间。
例如如下:
...
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
...
Tomcat4.1默认值是300秒。
如果需要日志记录丢弃的连接资源,可以如下设定
...
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
...
Tomcat的默认值是false.
相反,则会导致这些资源不能再利用,出现连接池泄露问题,最终导致无法访问web应用。
在Tomcat4.1里,有一种解决方法。就是通过设置Jakarta-Commons DBCP ,来防止连接池泄露。
配置情况就是在server.xml的DBCP DataSource 的Resource 元素的ResourceParams的元素标签里,
设定removeAbandoned值为true。例如如下设定:
<Resource name="jdbc/epoch" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/epoch">
...
<parameter>
<name>removeAbandoned</name>
<value>true</value>
</parameter>
...
</ResourceParams>
</Resource>
Tomcat4.1的默认removeAbandoned的值是false。
还有一个参数removeAbandonedTimeout可以设置一个数据库连接的最长闲置时间。
例如如下:
...
<parameter>
<name>removeAbandonedTimeout</name>
<value>60</value>
</parameter>
...
Tomcat4.1默认值是300秒。
如果需要日志记录丢弃的连接资源,可以如下设定
...
<parameter>
<name>logAbandoned</name>
<value>true</value>
</parameter>
...
Tomcat的默认值是false.