2011-10-02 107 views
1

我有一個基於Swing開發的獨立Java窗口應用程序。它連接到一個用於數據存儲的MySQL數據庫。如果數據庫連接失敗,我會從MySQL JDBC驅動程序(MySQLNonTransientConnectionException)中獲取鏈接失敗異常。我不想重新實例化我的數據庫連接對象或整個程序,以防發生這種鏈接失敗問題。我只想告訴用戶稍後再試,而不必重新啓動整個應用程序。如果要求用戶重新啓動整個應用程序,那麼可能會給程序的質量帶來負面影響。對於標準java應用程序在這種數據庫鏈接失敗之後進行故障切換而不必重新實例化所有通信對象,您認爲什麼是這種首選方式?提前致謝。JDBC連接鏈接失敗 - 如何故障轉移?

+0

我沒有看到你的程序如何在沒有打開新連接的情況下繼續運行。 –

+0

你必須根據你的要求編寫代碼 - '如果database_dead顯示消息' – home

回答

1

使用連接池(如C3PO或DBCP)。您的應用程序從池中獲取連接,執行語句並將連接放回池中。該池可以配置爲測試JDBC連接。例如,如果它們變得陳舊,它們可以在游泳池中自動重新實例化。

如果您的應用程序從池中接收連接,它將是一個有效的連接。讓池處理有效/無效/失效JDBC連接的管理。