JDBC 接続タイムアウトの解決: Wait_Timeout エラーの調査
この記事では、MySQL で JPA Hibernate を使用する Spring Boot アプリケーションで接続が発生する問題に対処します。指定された時間が経過すると終了します。エラー メッセージは、MySQL サーバーの wait_timeout 設定が超過したことを示しています。
考えられる解決策
当初、開発者は「testOnBorrow」オプションと「validationQuery」オプションを特定しましたが、これらはタイムアウトの問題を解決するために推奨されません。
推奨アプローチ: 接続検証とプールの動作の構成
推奨される解決策には、アイドル状態または問題のある接続が確実に特定され削除されるように、接続検証とプールの動作を構成することが含まれます。
JDBC URLパラメータ
「autoReconnect」パラメータを JDBC URL に追加することは、クイックフィックスですが、アクティブなトランザクション中に問題が発生する可能性があるため、注意して使用する必要があります。
spring.datasource.max-active
このパラメータを設定すると、アクティブな接続の最大数pool.
spring.datasource.initial-size
プール内の初期接続の数を指定します。
spring.datasource. max-idle およびspring.datasource.min-idle
アイドル接続の最大数と最小数を構成します。
spring.datasource.test-while-idleおよびspring.datasource.test-on-borrow
これらのパラメータアイドル時またはプールからの取得時に接続検証を有効にします。
spring.datasource.validation-query
このパラメータは、接続検証に使用されるクエリを指定します。
注: の代わりに JDBC4 検証メソッドを使用してください。利用可能な場合は、「validationQuery」オプション。
spring.datasource.time-between-eviction-runs-millis および spring.datasource.min-evictable-idle-time-millis
これらのパラメータは、アイドル状態の接続をネットワークから排除する頻度と基準を制御します。 pool.
これらの構成を実装すると、アプリケーションは定期的に接続を検証し、無効な接続を削除して、接続タイムアウト エラーを防ぎます。 Spring Boot 2.x は、デフォルトの接続プールとして HikariCP を使用し、拡張された接続管理機能を提供します。さらなる構成オプションについては、ドキュメントを参照することをお勧めします。
以上がSpring Boot アプリケーションでの JDBC 接続タイムアウト エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。