ホームページ >Java >&#&チュートリアル >JPA と Hibernate を使用して Spring Boot アプリケーションでデータベース接続タイムアウトを防ぐ方法は?

JPA と Hibernate を使用して Spring Boot アプリケーションでデータベース接続タイムアウトを防ぐ方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-25 05:38:29451ブラウズ

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

特定の時間間隔後にデータベースへの接続が失われる: Spring Boot、JPA、Hibernate

JPA と Hibernate with MySQL を利用する Spring Boot アプリケーションでは、データベースへの接続がタイムアウトしたことを示すエラーが発生する場合があります。この問題を解決するには、推奨されるアプローチと非推奨のアプローチを検討してみましょう。

非推奨のアプローチ: 自動再接続の有効化

JDBC での自動再接続の有効化は迅速かつ簡単です。 URL は推奨されません。アクティブな接続中、特にトランザクションが中断された場合に問題が発生する可能性があります。

推奨されるアプローチ: 接続検証

この問題に効果的に対処するには、全体で接続検証を有効にすることが重要です。アプリケーションの存続期間。これには、複数のプロパティの構成が含まれます:

  • アクティブな接続の最大数: 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-ミリ秒 (例: 60000 ミリ秒)

これらの構成により、接続の有効性が定期的にテストされ、アイドル状態の接続が指定された期間未使用のままであればプールから削除されます。

Spring Boot 2.x の更新:

Spring Boot 2.x では、デフォルトの接続プールが Tomcat JDBC ではなく、HikariCP に切り替わったことに注意してください。その結果、接続検証の構成プロパティが若干異なる場合があります。

以上がJPA と Hibernate を使用して Spring Boot アプリケーションでデータベース接続タイムアウトを防ぐ方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。