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

标签 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。

请告诉我正确的配置过程,我必须更改哪些参数才能正确处理连接。

最佳答案

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

关于java - 数据库查询挂到 DB2 服务器,在 java 代码中使用 tomcat 连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18391021/

相关文章:

apache - Exo 平台删除地址端口 8080

java - 无法让 Servlet 以 UTF-8 格式处理请求内容

sql - DB2 触发器语法之前

java - 在 HSQL 中使用 DATE 函数时出错

java - Spring ResourceBunddleMessageSource 不采用默认的 messages.properties 文件

java - getResource 在一台服务器上返回 null,但在另一台服务器上则不返回 null

java - 使用 Java 下载为二进制的文件已损坏

scala - Spark提交期间如何解决DB2 java.io.CharConversionException

java - 将序列化 java 对象保存到 Db 时出现问题

java - Android - 有关系统 UI 的问题