2014-10-02 484 views
1

我有一些在JBoss 4.2.2,JBoss 5.1和WildFly 8.1.0上運行的應用程序。所有這些應用程序都使用連接池。我的數據源是這樣的:JBoss/WildFly連接池和關閉連接

<datasource jta="false" jndi-name="java:/datasource/myawesomeds" pool-name="MyAwesomeDS" enabled="true" use-ccm="false"> 
    <connection-url>jdbc:oracle:thin:@myserver.example.com:1521:oracle_service</connection-url> 
    <driver-class>oracle.jdbc.OracleDriver</driver-class> 
    <driver>ojdbc6.jar</driver> 
    <security> 
     <user-name>username</user-name> 
     <password>MyPassWord</password> 
    </security> 
    <validation> 
     <validate-on-match>false</validate-on-match> 
     <background-validation>false</background-validation> 
    </validation> 
    <statement> 
     <share-prepared-statements>false</share-prepared-statements> 
    </statement> 
</datasource> 

如您所見,我使用Oracle數據庫。服務器版本是10g。當Oracle數據庫關閉幾分鐘,我的所有應用程序在JBoss和WildFly上開始顯示SQLException: Closed Connection.

我的問題:這是正常的嗎?爲什麼JBoss和WildFly不檢查連接來驗證?

+0

這是正常的。一些池支持連接驗證。我相信可以做連接驗證檢查。 – 2014-10-02 12:59:34

回答

1

是的,這是正常的。

然而,您可以定義wildfly/jboss在從連接池中獲取連接時應驗證連接。你所有的連接都是無效的,所以如果你定義了應該存在的最小數量的連接,通常它應該爲你創建一個新的連接。

+0

爲了驗證我的連接,我想我需要設置true在'background-validation' – 2014-10-02 15:44:54

+0

它爲我工作通過啓用匹配驗證選擇,以及'background-validation'和'Check Valid Sql' – Apostolos 2016-09-19 12:17:19