TomCat サーバーにデプロイされた Spring MVC プロジェクトがあり、データベースへの接続で問題が発生し続けています。数時間後、ユーザーがログインしようとすると、500 エラーと次のメッセージが表示されます。
HTTP Status 500 - Request processing failed; nested exception is org.springframework.dao.RecoverableDataAccessException: The last packet successfully received from the server was 75,026,904 milliseconds ago. The last packet sent successfully to the server was 75,031,521 milliseconds ago. is longer than the server configured value of 'wait_timeout'.
問題は、TomCat が MySQL への接続がまだ開いていると認識しているためだと思いますが、MySQL は 8 時間後に接続を閉じます。このエラーが発生した後にページを更新すると、すべて正常に動作します。
私の質問は、1 つの永続的な接続を維持するのではなく、使用するたびに接続を開いたり閉じたりして、データベースにクエリを実行するために使用している NamedParameterJdbcTemplate を使用する方法はありますか? または、この問題を解決するためのより良い方法はありますか?
おそらくautoReconnect = trueを設定していますか?現在これを試していますが、うまくいくかどうかがわかるまでに数時間かかります。