如何跟踪异常 JDBC 连接
Posted
技术标签:
【中文标题】如何跟踪异常 JDBC 连接【英文标题】:How trace exception JDBC connection 【发布时间】:2015-11-03 13:55:10 【问题描述】:我开发了一个 XPages 应用程序,可以访问 Anonymous 来查询实时库存。 一切正常 所以我创建了带有驱动程序JTOpen 的 OSGI 包来访问 DB2 AS400 (iSeries) 数据库 当您打开页面时,一切都很顺利。 当有用户不活动时出现问题(图标化 windows 浏览器并重新打开 xpages)
我使用不同的编辑框、组合框在部分刷新模式下执行 SQL 查询来过滤和搜索 DB2 Iseries。
我的问题是,在几分钟不活动后,我注意到组合框不再起作用,而且似乎 JDBC 连接下降 (我已经为 Ping 激活了 keepalive 功能)
...但我不知道如何调试这个可能的 JDBC 异常。
有人有什么想法吗?
这是我在WebContent-->WEB-INF-->jdbc下的as40.jdbc文件
<jdbc type="simple">
<driver>com.ibm.as400.access.AS400JDBCDriver</driver>
<url>jdbc:as400://192.168.X.X;naming=system;errors=full</url>
<user>user</user>
<password>pwd</password>
<simple>
<minPoolSize>10</minPoolSize>
<maxPoolSize>20</maxPoolSize>
<maxConnectionSize>200</maxConnectionSize>
<useTimeout>1</useTimeout>
<idleTimeout>00</idleTimeout>
<maxLiveTime>00</maxLiveTime>
<acquireTimeout>10000</acquireTimeout>
</simple>
</jdbc>
【问题讨论】:
【参考方案1】:url中有超时设置可以指定。
jdbc:as400://xxx.com;libraries=libs;sort=hex;socket timeout=30000;thread used=false;translate binary=true;prompt=false;
也许问题出在 XPage 上的代码上?如何将组合框中的值绑定到 jdbc 数据?
霍华德
【讨论】:
组合框只是一个过滤器...执行部分刷新,其中目标是绑定 JDBC 对象的重复控件。【参考方案2】:我怀疑有useTimeout=1
。我相信这将意味着已使用超过 1 秒的连接将被删除。您可以尝试设置useTimeout=0
看看是否有任何不同。
【讨论】:
好的,我试试这个解决方案,然后更新这篇文章。 tnx以上是关于如何跟踪异常 JDBC 连接的主要内容,如果未能解决你的问题,请参考以下文章
求解决java中用jdbc方式连接mysql数据库的问题,错误异常如下:(解决后再加分)
使用 Dataframes 从 Informix 到 Spark 的 JDBC