2013-09-23 136 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,它驗證經由供應商特定的機制連接。

相關問題