私はMySQL DBと対話するJava Webアプリケーションを持っています。私はDB接続を閉じることは決してありません。私は接続インスタンスを扱うためにシングルトンを使います。MySQL接続が終了しましたJava
問題は、私はあまりにも長い間接続を開いたまま、私はアプリのいくつかのアクションを実行しようとした後、私はこのエラーを取得しています、次のとおりです。
The last packet successfully received from the server was 211,710,369 milliseconds ago. The last packet sent successfully to the server was 211,710,398 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
私はautoReconnect=true
行うことができますどのように任意のアイデア?または、なぜこれが起こっているのですか?私はデフォルトで自動的に再接続しますが。または、毎回リクエスト後にDBを閉じたままにする必要がありますか?これは、このアプリでは不可欠なパフォーマンスを低下させます。
これ以上の情報はありますか?長い時間のためにも、非アクティブな接続のための接続を生きる保持するmysqlの接続
jdbc:mysql://localhost/<database>?autoReconnect=true
使用検証クエリの最初の使用この
アライブ接続を維持するために、次の
本当に接続をアイドル状態にしていますか? –
接続が2日半の間アイドル状態になると、接続の開始と終了がパフォーマンスの問題になることはありません。 –
クラシックパフォーマンスに関する懸念 – Drew