Javaアプリケーションとmysqlサーバー間の接続が失われたことを実験しています。
アプリケーションとサーバーは2つの異なるマシン上にあり、2つの間で物理コードを引っ張っています。
私は実行していますnetstat -plunta
接続の状態を確認するには、ここに奇妙な部分があります。コードを引っ張った後、非常に長い間ESTABLISHED状態の接続を見ることができます。少なくとも数時間。そうなのか?パケットが通過できない場合、接続はいつ終了しますか?
どちらのマシンもLinux/Ubuntuを実行しています。 1つは10.04で、もう1つは11.04です。
さて、あなたの質問に答える前の試みですでに言ったように、魂のキーワードは「 キープアライブ "」です。 TCP接続は文字通り永久にアイドル状態(データフローなし)になる可能性があります。便利な場合とそうでない場合があります。したがって、2つのアプローチ:アプリケーションは定期的にプローブトラフィックを実装するか、TCPの「拡張」キープアライブを使用します-生きている(TCP_KEEPALIVE)。