首頁 > Java > java教程 > 主體

如何使用 JPA 和 Hibernate 防止 Spring Boot 應用程式中的資料庫連線逾時?

Patricia Arquette
發布: 2024-10-25 05:38:29
原創
442 人瀏覽過

How to Prevent Database Connection Timeouts in Spring Boot Applications Using JPA and Hibernate?

與資料庫的連線在特定時間間隔後消失:Spring Boot、JPA、Hibernate

使用JPA 和Hibernate 與MySQL 的Spring Boot 應用程式中,使用者可能會遇到錯誤,表示與資料庫的連線已逾時。要解決這個問題,讓我們探討推薦和不鼓勵的方法:

不鼓勵的方法:啟用自動重新連接

雖然快速簡單,但在JDBC 中啟用自動重新連線不建議網址。它可能會在活動連線期間產生問題,尤其是在事務中斷時。

建議方法:連線驗證

要有效解決此問題,請務必啟用連線驗證至關重要應用程式的生命週期。這涉及配置多個屬性:

  • 最大活動連接數: spring.datasource.max-active(例如,10)
  • 數量初始連接: spring.datasource.initial-size(例如5)
  • 空閒連接的最小和最大數量: spring.datasource.max-idle 和spring.datasource。 min-idle(例如5 和1)
  • 空閒和借用時驗證: spring.datasource.test-while-idle 和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 2.x 更新:

請注意,Spring Boot 2.x 已切換為 HikariCP 作為預設連線池,而不是 Tomcat JDBC。因此,連線驗證的配置屬性可能會略有不同。

以上是如何使用 JPA 和 Hibernate 防止 Spring Boot 應用程式中的資料庫連線逾時?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板