我與jdbc連接池glassfish發生了一個問題,發送死數據庫連接。我使用jconn3(com.sybase.jdbc3)運行Glassfish 3.1.2.2以連接到Sybase 12.5。我們的組織每晚重新啓動一次,在此期間我們重新啓動Sybase服務器。當重啓過程中嘗試使用數據庫連接時,我的問題就會顯現出來。以下是產生我的問題的操作順序:無效連接返回到JDBC連接池 - GlassFish 3.1.2.2
,我實現了試圖從這種情況下恢復數據庫恢復單身。任何時候發生數據庫異常我都會調用一個jmx來暫停所有隊列,並在JDBC連接池上執行flushConnectionPool操作。如果數據庫連接仍未啓動,則進程會在10分鐘內設置一個要重試的計時器。雖然這個過程有效,但並非沒有缺陷。
我意識到池中有一個設置,以便您可以在交付數據庫連接之前驗證數據庫連接,但出於性能方面的原因,我已經迴避了這一點。我的流程每天執行大約500萬次數據庫事務。
我的問題是,有沒有人知道一種方法來避免首先將死連接返回到池?