2013-09-26 113 views
1

如何以可靠和有效的方式使用JDBC檢測丟失的連接?目前我正在使用Vertica JDBC驅動程序。我不認爲我可以使用連接池,因爲我需要控制隨時連接的節點。目前爲止我想到的東西:JDBC檢測到丟失的連接

  1. 假設SQLException是一個丟失的連接。看起來不可靠。
  2. 檢查ex.getCause並查找套接字異常。不確定檢查原因是一種好的做法。
  3. 檢查我知道的錯誤代碼是丟失連接的情況。也似乎有點不可靠。

編輯︰ 我試過isValid和isClosed。 isValid引發異常,而isClosed始終返回false,無論如何。

回答

1

從版本1.6開始,理論上可以使用Connection.isValid方法,但我不確定每個供應商是否都支持它。另一種替代方法是使用管理連接的connection pool,並從中獲得連接並在不需要時釋放連接。連接池負責維護連接,並始終提供有效的連接。

+0

我會嘗試isValid。我不認爲我可以使用池,因爲我需要控制連接的數據庫節點。不能只是從游泳池:) – Zilvinas