2016-07-20 123 views
0

我有一個使用Wildfly數據源連接到Oracle數據庫的產品。 我們的數據庫服務器每週都有冷備份,因此數據庫將每週關閉大約10分鐘。然後我被迫在數據庫啓動後重新啓動應用程序。從Wildfly數據源重新啓動後重新連接到oracle數據庫

如何配置我的Wildfly數據源以在數據庫啓動後檢查並重新連接?

Wildfly版本:wildfly-8.2.0.Final

數據源配置 -

<datasource jndi-name="java:/REQUESTDS" pool-name="REQUESTDS" enabled="true"> 
        <connection-url>jdbc:oracle:thin:@localhost:1521:MYDB</connection-url> 
        <driver-class>oracle.jdbc.OracleDriver</driver-class> 
        <connection-property name="selectMethod"> 
         direct 
        </connection-property> 
        <connection-property name="sendStringParametersAsUnicode"> 
         true 
        </connection-property> 
        <driver>oracle-thin</driver> 
        <new-connection-sql>SELECT 1 FROM DUAL</new-connection-sql> 
        <pool> 
         <min-pool-size>20</min-pool-size> 
         <max-pool-size>80</max-pool-size> 
         <prefill>true</prefill> 
         <use-strict-min>true</use-strict-min> 
        </pool> 
        <security> 
         <security-domain>CompanySecureDataSource</security-domain> 
        </security> 
        <validation> 
         <validate-on-match>true</validate-on-match> 
        </validation> 
        <timeout> 
         <blocking-timeout-millis>90000</blocking-timeout-millis> 
         <allocation-retry>40</allocation-retry> 
         <allocation-retry-wait-millis>30000</allocation-retry-wait-millis> 
        </timeout> 
       </datasource> 

我已經在這裏檢查我的線程,並試圖其中的大多數。但徒勞無益。

是什麼將檢查並重新連接到Oracle數據庫

回答

1

使用background-validation和游泳池將嘗試創建新的連接,如果他們中的任何一人死亡正確的設置。

   <validation> 
        <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql> 
        <validate-on-match>false</validate-on-match> 
        <background-validation>true</background-validation> 
        <background-validation-millis>20000</background-validation-millis> 
       </validation> 
+0

This Works。我發現的其他相關問題是如果轉到jboss控制檯並在那裏進行更改。它不會被保存。所以我必須打開standalone-full.xml並在那裏添加這些語句。重啓後,它的作品。我的產品能夠連接到數據庫。 – Linus

相關問題