JPA および Hibernate を使用した Spring Boot での接続タイムアウト
JPA-Hibernate および MySQL で Spring Boot を使用すると、次のエラーが発生する場合があります:
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 56,006,037 milliseconds ago. The last packet sent successfully to the server was 56,006,037 milliseconds ago. is longer than the server configured value of 'wait_timeout'.
この問題は、接続が長期間非アクティブであるために発生します。導致サーサーバー終止連線。
非推奨の解決策
1 つの一般的な解決策ただし、推奨されないアプローチは、借用時に接続テストを有効にすることです:
spring.datasource.testOnBorrow=true spring.datasource.validationQuery=SELECT 1
推奨される解決策
より包括的な解決策には次のものが含まれます:
autoReconnect プロパティを含めるように spring.datasource.url を設定する:
spring.datasource.url = jdbc:mysql://localhost:3306/test?autoReconnect=true
アクティブな接続の最大数を指定する:
spring.datasource.max-active=10
初期接続の指定:
spring.datasource.initial-size=5
最大および最小アイドル接続の設定:
spring.datasource.max-idle=5 spring.datasource.min-idle=1
接続検証の有効化:
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
HikariCP のメモ
Spring Boot 2.xでは、接続プールがHikariCPに切り替わりました。詳しい構成オプションについては、HikariCP のドキュメントを参照してください。
以上がここでは、質問と回答の形式に焦点を当て、記事の内容を含む、いくつかのタイトル オプションを示します。 **オプション 1 (エラーに焦点を当てる):** * **Spring Boot JPA/Hibernate: 「Co」を修正する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。