ソケットを介して短い XML メッセージを交換することで相互に通信する、Java で書かれた一連のアプリケーションがあります。現在、開発中は、すべてのアプリケーションを同じワークステーションで実行しています。私たちの問題は、各方向で何万ものメッセージが交換された後、これらのプログラム間のソケット接続がハングする可能性があることです。
Eclipse デバッガーで問題を確認すると、接続の両端で同じコードの別々のインスタンスが実行されていることがわかります。両端は、write(String) 呼び出しを使用して、Socket に基づいて BufferedWriter に有効なメッセージを正常に書き込みました。両端は、BufferedWriter の flush() 呼び出しの完了を待ってブロックされているように見えます。コードに異常はなく、ハングするまで何千ものメッセージを問題なく実行できます。どちらの側でも例外はスローされず、待機は無期限に見えます。この問題は、Linux プラットフォームと Windows プラットフォームの両方で実行中に確認されています。
誰が何が起こっているのかを提案できますか?