1

<local-tx-datasource>在 IBM DB2 9.7 数据库上使用 JBoss 数据源 ()。连接工作正常。

但是,我尝试启用<track-statements><valid-connection-checker><check-valid-connection-sql>属性,但我怎么知道它们正在工作?使用数据源时,我在服务器控制台上没有收到任何错误或警告,但我也没有得到任何增强的日志记录。

下面是我正在使用的稍微修改过的版本。我尝试了各种属性组合。下面我注释掉了 check-valid-connection-sql 属性,但启用了有效、陈旧和异常排序器属性。我正在使用 JBoss5,我想知道它是否有影响。

例如,我尝试在 finally 子句中删除休眠会话关闭语句,但没有记录任何内容。似乎下面的附加属性由于某种原因没有启用,或者至少它们没有记录在 JBoss server.log 日志文件中。

<datasources>
<local-tx-datasource>
<jndi-name>[jndiname]</jndi-name>
<connection-url>jdbc:db2://[ip]:[port]/[dbname]</connection-url>
<driver-class>com.ibm.db2.jcc.DB2Driver</driver-class>
<user-name>[user]</user-name>
<password>[password]</password>
<min-pool-size>10</min-pool-size>
<valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ValidConnectionChecker"></valid-connection-checker>
<stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2StaleConnectionChecker"></stale-connection-checker>
<exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.db2.DB2ExceptionSorter"/>
<track-statements>true</track-statements>
  <metadata>
     <type-mapping>DB2</type-mapping>
  </metadata>

4

1 回答 1

0

如果您正确配置了valid-connection-checker-class-namecheck-valid-connection-sqlvalidate-on-match(默认设置为 true),那么您可以通过在数据库服务器上手动执行中断来测试它是否正常工作,并查看 JBoss 是否重新连接并使用有效连接刷新数据源池。

我不建议track-statements在生产中保持启用状态。它主要是一个调试功能,用于跟踪您是否没有在代码中正确关闭语句和结果集。在开发或测试服务器中打开它以验证您是否正确关闭它们(例如在 finally 块中关闭它们)。您可以通过验证诸如“关闭您打开的结果集!请自行关闭”之类的消息来测试它。在服务器日志中。

于 2013-03-11T14:55:45.583 回答