2013-09-23 96 views
1

当数据库和JBoss之间断开连接时,JBoss的任何版本是否支持与数据库的自动重新连接?我用下面的配置试图当数据库重新启动/断开连接时,JBoss自动重新连接数据库

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <datasources>  
    <local-tx-datasource> 
    <jndi-name>sampleDS</jndi-name> 
    <min-pool-size>1</min-pool-size> 
    <max-pool-size>5</max-pool-size> 
    <driver-class>oracle.jdbc.driver.OracleDriver</driver-class> 
    <connection-url>jdbc:oracle:thin:@<ip>:<databaseport>:<sip></connection-url> 
    <user-name>username</user-name> 
    <password>password</password> 
    <valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleValidConnectionChecker</valid-connection-checker-class-name> 
    <exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.OracleExceptionSorter</exception-sorter-class-name> 
    <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql> 
<failOverReadOnly>false</failOverReadOnly> 
<autoReconnect>true</autoReconnect> 
    <maxReconnects>50</maxReconnects> 
    <initialTimeout>15</initialTimeout> 
    </local-tx-datasource> 

+1

这是一个相当复杂的话题。尝试搜索有关“DCD” - “死连接检测”,Jboss'es ExceptionSorter'和“TCP保持活动”的内容。理论上这应该很容易,但真正的生产部署引入了各种惊喜。 – ibre5041

+0

你有哪些问题? – Beryllium

回答

3

我使用的jboss-EAP-6.1和它的工作完美。修改jboss-eap-6.1/standalone/configuration/standalone.xml文件,并在每个<xa-datasource>标记内添加以下行。

   <validation> 
        <check-valid-connection-sql>select 1</check-valid-connection-sql> 
        <background-validation>true</background-validation> 
        <background-validation-millis>15000</background-validation-millis> 
       </validation> 
+1

谢谢。适用于我的6.4 EAP,尽管使用了不同的标签 - “”。所有三个设置都需要。 –

0

一例的JBoss EAP 6.4工作(基于在JBoss AS 7.x中)+甲骨文:

<datasource> 
    <validation> 
     <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> 
     <background-validation>true</background-validation> 
     <background-validation-millis>5000</background-validation-millis> 
    </validation> 

不同于select 1 from dual,它验证经由供应商特定的机制连接。

相关问题