jboss连接池不能正常处理错误

时间:2014-02-12 17:16:14

标签: jboss datasource jboss5.x

我正在使用配置了多个数据源的jboss 5.0.1。

似乎在启动时,如果其中一个配置不正确,jboss会抛出异常并拒绝启动。

我想知道是否可以配置jboss以适应这些问题。

1 个答案:

答案 0 :(得分:0)

您可以在xml文件中配置包含连接参数/映射的连接。在我的情况下,我使用microsoft sql server作为数据源,所以我必须使用mssql-ds.xml文件(在server / deploy目录中)来指定:

<?xml version="1.0" encoding="UTF-8"?>
<datasources>
   <local-tx-datasource>
      <jndi-name>myTestServer</jndi-name>
      <connection-url>jdbc:sqlserver://xxx.xxx.xxx.xxx:1433;databaseName=MyDB</connection-url>
      <driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
      <user-name>test</user-name>
      <password>abc123</password>
      <min-pool-size>10</min-pool-size>
      <max-pool-size>25</max-pool-size>

      <!-- sql to call when connection is created -->
      <new-connection-sql>select getdate()</new-connection-sql>
      <!-- -->

      <!-- sql to call on an existing pooled connection when it is obtained from pool
      This will be run before a managed connection is removed from the pool
      for use by a client -->
      <check-valid-connection-sql>select getdate()</check-valid-connection-sql>

   </local-tx-datasource>
 </datasources>

这有助于控制池中的连接,并应该阻止狡猾的死锁。我不完全确定这是否会测试有问题的连接上的当前事务级别,所以如果你想绝对确定,你可以尝试:<check-valid-connection-sql>IF @@TRANCOUNT > 0 raiserror ('%s',18,1,'Open Transactions Discovered')</check-valid-connection-sql>这将为你提供一个明确的SQLException来处理。

但是如果你在启动时遇到错误,那么查看这些错误是非常有用的。