2011-01-20 6 views
3

サブシステムのタイムアウトは150秒です。私のアプリケーションでは、最初のSOAPリクエストが送信されます。 60秒後に別の要求が送信されます。私の質問は、他のリクエストがどこから来るのかです。まだ新しいスレッドですが、クライアントコードには再試行メカニズムはありません。Java - 2つのWebContainerスレッドからの複数の要求

2011-01-18 16:16:32.696 EST [WebContainer : 0] DEBUG content <> << "<?xml version="1.0" encoding="UTF-8"?>[\n]" 

2011-01-18 16:17:32.591 EST [WebContainer : 2] DEBUG content <> << "<?xml version="1.0" encoding="UTF-8"?>[\n]" 

あなたは、ほぼ1分間隔で異なるWebコンテナから、同じreqeustが呼ばれる見ることができるように:これは、WebSphere 6で実行されているこれらのログからの抜粋です。 2番目のリクエストがどこから来ているのかは、どのようにして見つけることができますか?デバッグするには、WebSphereで何をチェックする必要がありますか?

答えて

3

わずか2週間前にこの問題に対処してください。 WebSphereのHTTPプラグインのデフォルトのタイムアウト設定は60秒です。あなたのスレッドが60秒後にまだ返っていない場合、リクエストは再発行されます(私はHTTPサーバーによって信じていますが、わかりません)。したがって、要求を処理する2番目のWebContainerスレッド。

ケースをテストするために、プラグインの時間を> 150秒に設定できます。 WebSphere管理コンソールのWebサーバー定義の「プラグインのプロパティ」ページでServerIOTimeoutカスタムプロパティを設定します。無限の待機時間の場合は0に設定します。

これはWAS6.1とWAS7の両方で動作します.WAS6で動作するかどうかはわかります。

+1

遅くなりました;) – blockHead

+0

このシナリオに初めて遭遇しました。ユーザーが高価なWebリソースを何度も何度もリクエストしたと思っていました。しかし、それはWebサーバーだと判明しました! WebSphereのhttpアクセス・ログでは、要求が1回だけ出されたことが明らかになりました。警告:これは、ポイズン要求(限られたリソース[プールからの接続]を結びつける高価な要求)があれば、システムを停止する(可用性に影響する)まで迅速にエスカレートする可能性があります。その要求は、Webサーバーによって忠実に再生され、限られたリソースの多くを使い果たしてしまいます。 – Kingsly

関連する問題