2012-03-07 19 views
2

我有一個獨立的java應用程序,它在postgresql數據庫上創建一些數據庫讀/寫業務。我使用了java.sql.Connection對象上的isValid函數,以便在數據庫連接丟失/失敗時重新建立數據庫連接,這可能是由於網絡問題/崩潰造成的。下面的代碼片段顯示了這個想法很快:用Java編寫Postgresql數據庫的編程連接有效性檢查

//dbConnection is an instance of java.sql.Connection 

    if(dbConnection.isValid(1)){ 
    reEstablishConnection(); 
    } 

然而,在運行時我在上面,如果塊的條件,它說,該方法「的isValid」尚未實現內得到一個例外。我使用的是最新的JDBC驅動程序(v9.1-101),而我的postgesql DBMS版本是8.3.9。我使用Yast2在SUSe Linux(SLES 11 SP2 - 64位)上安裝了它。有人可以告訴我如何檢查連接是否以編程方式丟失了Java中的postgresql?我的注意事項是在沒有用戶干預的情況下自動重新連接。

回答

3

你可以實現你自己的連接有效性檢查功能(類似執行"select 1",如果1從db返回而沒有錯誤返回true)。

不過,我建議你使用connection pooling,我建議使用的Apache Tomcat Pool,將處理爲你效力上的連接檢查(在許多其他事情)