数据库查询挂起到DB2服务器,在java代码中使用tomcat连接池

时间:2013-08-22 21:19:07

标签: java tomcat db2 jndi connection-pooling

我开发了一个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>

在context.xml apache tomcat服务器中配置

: - <ResourceLink global="jdbc/abcd" name="jdbc/abcd" type="javax.sql.DataSource" />

server.xml中的

配置: - <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。

请告诉我正确的配置程序,为了正确处理连接,我需要更改这些参数。

1 个答案:

答案 0 :(得分:0)

我不确定“正确处理连接”是什么意思。您可以将commandTimeout数据源属性设置为在一段时间后终止查询,如果这是您想要的。但是,我感觉问题出在数据库大小上。例如,您遇到锁定冲突,并且数据库中的locktimeout参数设置为无穷大,这会导致某些连接永远等待。您可能需要与您的DBA交谈。