ejb3
Beanがデプロイされた JBoss 5 があります。
Bean メソッドの実行に非常に長い時間がかかる場合 (私は 2 時間確認しました)、クライアントは EJB メソッドの実行が終了したときに (例外の有無にかかわらず) 応答を受け取りません。
クライアントは、ソケットからの応答を待ってブロックされています。
なぜそれが起こるのですか?
ほとんどの場合、これは (ステートフル) ルーター、パケット フィルター、ロード バランサー、SSL ボックスが原因で発生します。一定時間非アクティブになった後に接続を終了するだけで、実際のエンドポイントには通知されません。経験上、通常、各デバイスに適切なタイムアウトを設定することは制御不能です。
とにかく、症状を治す代わりに、実行中のリクエストには開いているTCP接続が必要であり、スレッドをブロックする可能性があります。したがって、システムの設計を同期から非同期に変更することを検討してください。