在JBoss 5应用服务器上启用连接检查器和语句跟踪器



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

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

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

我已经尝试过在finally子句中删除hibernate会话关闭语句,但没有记录任何内容。似乎由于某种原因,下面的附加属性没有启用,或者至少它们没有记录在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>

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

我不建议在生产环境中启用track-statements。它主要是一个调试功能,用于跟踪代码中是否没有正确关闭语句和resultset。在开发或测试服务器中打开它,以验证您是否正确地关闭了它们(例如在finally块中关闭它们)。您可以通过验证诸如"关闭您未打开的结果集!"

最新更新