首頁 >資料庫 >mysql教程 >為什麼我的 Spring Boot 資料庫連線在不活動後會斷開,如何防止這種情況發生?

為什麼我的 Spring Boot 資料庫連線在不活動後會斷開,如何防止這種情況發生?

Linda Hamilton
Linda Hamilton原創
2024-12-06 00:32:10444瀏覽

Why Are My Spring Boot Database Connections Dropping After Inactivity, and How Can I Prevent It?

在Spring-Boot 中與資料庫的連接超出設定的時間範圍被切斷

使用JPA 和Hibernate 與Spring-Boot 應用程式中的資料庫的連接可以如果互動之間的時間超過特定限制,則會遺失。此問題通常伴隨著一條錯誤訊息,指示由於超出伺服器的“wait_timeout”值而導致的連線問題。

為了解決此問題,不鼓勵使用 Spring 的 testOnBorrow 和validationQuery 屬性。相反,更強大的解決方案是配置以下設定:

  • spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true:在JDBC 中啟用自動重新連接URL.
  • spring.datasource.test-while-idle=true: 測試連線空閒。
  • spring.datasource.test-on-borrow=true:在從池中藉用連接之前測試連接。
  • spring.datasource.validation-query=SELECT 1:使用驗證查詢以檢查連線有效性。
  • spring.datasource.time- Between-eviction-runs-millis=5000:指定連線驗證的頻率檢查。
  • spring.datasource.min-evictable-idle-time-millis=60000:定義空閒時間限制,超過該時間限制將檢查連接並將其從池中刪除。

為了防止事務期間活動連接出現潛在問題,建議在事務開始時驗證連接,並在必要時取得新連接。

這些組態設定將啟用連線的定期驗證並防止過時的連線在池中累積。因此,即使長時間沒有活動,與資料庫的連接也應保持穩定。

以上是為什麼我的 Spring Boot 資料庫連線在不活動後會斷開,如何防止這種情況發生?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn