【发布时间】:2014-03-11 04:33:08
【问题描述】:
我正在使用配置了多个数据源的 jboss 5.0.1。
似乎在启动时,如果其中一个配置不正确,jboss会抛出异常并拒绝启动。
我想知道是否可以将 jboss 配置为对此类问题具有弹性。
【问题讨论】:
标签: jboss datasource jboss5.x
我正在使用配置了多个数据源的 jboss 5.0.1。
似乎在启动时,如果其中一个配置不正确,jboss会抛出异常并拒绝启动。
我想知道是否可以将 jboss 配置为对此类问题具有弹性。
【问题讨论】:
标签: jboss datasource jboss5.x
您可以在包含连接参数/映射的 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 来处理。
但如果您在启动时遇到错误,查看这些错误是什么会非常有用。
【讨论】: