2016-05-13 163 views
1

我在連接到oracle 11g的redhat 6中的Jboss eap 6.3上部署了java應用程序。 我使用這樣的JDBC連接:在oracle中閒置時jboss數據庫連接超時

<datasource jta="true" jndi-name="java:/jdbc/myjdbc" pool-name="myConfigDS" enabled="true" use-java-context="true" use-ccm="false" statistics-enabled="true"> 
        <connection-url>jdbc:oracle:thin:@(DESCRIPTION=(enable=broken)(ADDRESS=(PROTOCOL=TCP)(HOST=myhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=MYSERVICENAME)))</connection-url> 
        <connection-property name="oracle.net.CONNECT_TIMEOUT"> 
         10000 
        </connection-property> 
        <driver>oracle</driver> 
        <pool> 
         <min-pool-size>1</min-pool-size> 
         <max-pool-size>30</max-pool-size> 
         <prefill>true</prefill> 
        </pool> 
        <security> 
         <user-name>myusername</user-name> 
         <password>mypassword</password> 
        </security> 
        <validation> 
         <check-valid-connection-sql>SELECT 1 FROM DUAL</check-valid-connection-sql> 
         <background-validation>true</background-validation> 
         <background-validation-millis>60000</background-validation-millis> 
         <stale-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> 
         <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> 
        </validation> 
        <timeout> 
         <blocking-timeout-millis>5000</blocking-timeout-millis> 
         <idle-timeout-minutes>15</idle-timeout-minutes> 
        </timeout> 
       </datasource> 

如果在幾個小時內該應用的空閒,我們試圖查詢INT數據庫,數據庫IO連接超時發生。

在我的調查中,我假設網絡防火牆阻止了這個連接,如果內部沒有流量的話。 我的問題是如何處理網絡防火牆?在jboss xml配置中,是否有任何參數要添加到jndi連接中?

回答

0

喜@squallbayu不是100%肯定,如果這或許有幫助,你可能已經解決了這個問題,但是根據我們的DBA的enable=broken只有DCD Dead Connection Detection在數據庫服務器上啓用的作品,我們的服務器(S)的甲骨文官方發展援助。來自Oracle Dead Connection Detection的此PDF可能會幫助您或您的DBA進行設置,並且還可以使用Oracle註釋1641167.1來描述它。

執行概述是:

死連接檢測(DCD)是Oracle網絡的功能,幫助恢復分配給該是不再可用的連接資源。 DCD在Oracle Database 12c中得到了增強,可將檢測時間從大約15分鐘大幅縮短到2-3分鐘。本文[PDF鏈接]提供的12C和預-12C DCD機制,配置細節和12C機制

在短期利益的概述其基本設置SQLNET.EXPIRE_TIME在數據庫SQLNET像10分鐘.ORA文件。