簡體   English   中英

失去互聯網連接后,MySQL連接會如何處理?

[英]What happens to MySQL connection when internet connection is lost?

我的應用程序服務器已連接到MySQL數據庫。 此連接為24/7開放。

可以說我的互聯網崩潰了,或者我要阻止3306端口。

JDBC會拋出錯誤嗎? 如果沒有,我應該如何處理此類問題?

我之所以這樣問,是因為在某些情況下,MySQL連接隨機停止工作,但是沒有關閉,這導致客戶端超時。

您將獲得MySQLNonTransientConnectionExceptionCommunicationsException 通常,為了程序安全,您要么想要:

  • 根據需要打開/關閉連接

  • 關閉連接后重新打開

我個人推薦前者,尤其是當數據庫是用戶指定的(某些mysql設置有連接超時)時。

編輯

我似乎忘了提到每個@ThorbjørnRavnAndersen的連接池,但這也是一個可行的解決方案。 我個人不這樣做,而是對每個線程操作使用可實例化的SQL連接。

就個人而言,我將所有數據庫調用都放入try / catch塊中,因為總有可能出現問題。 您將需要在catch塊中設置一些默認值,並且如果由於某種原因它碰巧落在這些默認值上,請向最終用戶顯示某種(理想情況下)錯誤消息。

不能總是保證運行SQL查詢不會拉回任何類型的結果...任何數目的事情都可能出錯-服務器可能已關閉,連接可能已飽和,以至於無法將結果拉回服務器。及時地,它也可能位於各種備份的死胡同中。...這些事情必須始終考慮在內,這就是為什么我建議采用上述方式進行備份的原因。

最后,要回答您的問題,是的,在所有這些情況下,JDBC實際上都會引發錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM