0

リクエストを受け入れ、外部システムで特定のアクションを実行するサーブレットがあります。多くの場合、これらの外部システムの応答は遅く、要求には60秒以上かかります。ログでは、クライアントがまだ接続されている限り、ちょうど60秒後に(同じpostパラメーターを使用して)サーブレットに新しい要求が行われることがわかります。

グーグルは、同じことがGlassfishな​​どの他のアプリケーションサーバーでも報告されていることを発見しました。理由は、60秒のタイムアウト後、サーブレットまたはWebコンテナが呼び出しをタイムアウトして要求を繰り返しているためと思われます。これはサーブレットまたはコンテナによって開始された更新のようであり、実際にはクライアントから投稿されていないことに注意してください。これを回避する方法は、明らかにタイムアウトを増やすことです。(同様の問題については、こちらをご覧ください: Java-2つのWebContainerスレッドからの複数のリクエスト

deploy / jbossweb.sar / server.xmlのconnectionTimeoutを120000(2分)に増やしましたが、それでも60秒後に呼び出しが繰り返されます。

タイムアウトを増やす方法、またはJBossでこの動作を回避する方法はありますか?

ありがとうSrini

4

1 に答える 1

0

問題が見つかりました。問題は、JBossとはまったく関係がないことでした。当社のJBossサーバーはAmazonEC2インスタンスで実行され、ELBロードバランサーの背後にあります。AWS ELBロードバランサーは、アイドル時間の60秒ごとにタイムアウトになり、リクエストを再送信します。

于 2012-08-23T06:12:32.130 に答える