在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中文網其他相關文章!