我开发了一个Web应用程序并使用Tomcat连接池,Java代码正在触发对DB2服务器的查询,有时它运行正常并返回结果,但有时它会挂起,即查询将连续运行而没有任何线索。然后我必须重新启动解决问题并从数据库中提供成功数据的Tomcat服务器,我正在使用JNDI并在tomcat服务器(6.x)的server.xml中配置了参数。
应用程序war文件的web.xml中的配置: -
<resource-ref>
<description>DB Connection Pool </description>
<res-ref-name>jdbc/abcd</res-ref-name>
<res-type>javax.sql.DataSource </res-type>
<res-auth>Container </res-auth>
</resource-ref>
: -
<ResourceLink global="jdbc/abcd" name="jdbc/abcd" type="javax.sql.DataSource" />
配置: -
<Resource name="jdbc/abcd" auth="Container" type="javax.sql.DataSource" username="zzzzz" password="zzzzz" driverClassName="com.ibm.db2.jcc.DB2Driver" url="jdbc:db2://IP:50000/MYDB" />
我没有配置任何其他参数,如minIdle,maxIdle,maxWait和maxActive。
请告诉我正确的配置程序,为了正确处理连接,我需要更改这些参数。
答案 0 :(得分:0)
我不确定“正确处理连接”是什么意思。您可以将commandTimeout数据源属性设置为在一段时间后终止查询,如果这是您想要的。但是,我感觉问题出在数据库大小上。例如,您遇到锁定冲突,并且数据库中的locktimeout
参数设置为无穷大,这会导致某些连接永远等待。您可能需要与您的DBA交谈。