web-dev-qa-db-ja.com

SunWebまたはAppServerの構成で発生する可能性がある「一時的なエラーのため、リクエストを処理できませんでした」

私はこのサーバーのシステム管理者ではありませんが、システム管理者であるグループが修正をすばやく見つけるのを支援しようとしています。このため、すべてのサーバー構成ファイルにアクセスできるわけではありません。

それが邪魔にならないように、ここに私の質問があります:

これは、Sun Java System Web Server6.1およびSun Java SystemApplicationを備えたSolarisマシン上のJava EEアプリケーションに関するものです。サーバー8.1。Webサーバーは、アプリケーションサーバーに送信される要求のプロキシとして機能します。1つのアプリケーションインスタンスのみを指すため、バランスを取るものがないように見えますが、ロードバランサーとしても設定されていると理解しています。

プロキシを介してアプリケーションにリクエストを送信すると、次のような紫/青のページが断続的に表示されます。

Due to a temporary error the request could not be serviced.

The problem could be because:
    - The server is busy.
    - The server is temporarily unavailable.

 You may choose to resubmit the request, but be aware that the request might 
 have already been processed.  Depending on the type of request, you may not
 want it to be processed twice.  Please click here to re-submit.

注意すべきいくつかの事柄:

  1. 前述したように、この画面は断続的に表示されます。おそらく100〜500回に1回のリクエストです。
  2. 画面が表示されたら、遅滞なく返されます。言い換えれば、タイムアウトに関連しているようには見えません。
  3. ページを更新すると、要求されている実際のアプリケーションページが表示されます。つまり、エラーページの読み込み、更新、実際のページの読み込みの間に1〜2秒間、サーバーが一時的に停止したようには見えません。
  4. Webサーバーとアプリケーションサーバーは同じホスト上にあるため、ネットワークは問題ではないと思います。
  5. このエラーページが表示されると、Webサーバーログに次のエラーが表示されます。[02/Feb/2009:15:37:32]警告(19614):レポート:lb.runtime:ROUT1014:べき等でない要求/ applicationContextを再試行できません。 [02/Feb/2009:15:37:32]情報(19614):レポート:lb.runtime:RNTM3003:リクエストの処理中にエラーが発生しました:選択したサーバーを処理できませんでした

このエラーページが表示される原因は何ですか?

ありがとう、ジェフ

更新:

ロードバランサーの構成は次のとおりです。

 <!DOCTYPE loadbalancer PUBLIC "-// Sun Microsystems Inc.//DTD Sun ONE Application Server 7.1 // EN" "Sun-loadbalancer 
 _ 1_1.dtd"> 
 < loadbalancer> 
 <cluster name = "cluster1"> 
 <instance name = "instance1" enabled = "true" disable-timeout-in-minutes = "60" listeners = "http:// Host.domain.com:32000 "/>
<web-modulecontext-root ="/applicationContext "enabled =" true "disable-timeout-in-minutes =" 60 "error-url =" Sun- http-lberror.html "/>
<health-checkerurl ="/applicationContext "interval-in-seconds =" 30 "timeout-in-seconds =" 10 "/>
</ cluster> 
 <cluster name = "other_cluster"> 
 <instance name = "other_Host" enabled = "true" disable-timeout-in-minutes = "60" listeners = "http:// Host2.domain.com:80000"/>
<web-modulecontext-root = "/ otherContext" enabled = "true" disable-timeout-in-minutes = "60" error-url = "./ Sun-http-lberror.html "/>
<health-checkerurl ="/otherContext "interval-in-secon ds = "30" timeout-in-seconds = "10"/>
</cluster> 
 <property name = "reload-poll-interval-in-seconds" value = "60" />
<propertyname = "response-timeout-in-seconds" value = "600"/>
<propertyname = "https-routing" value = "false" /> 
 <property name = "require-monitor-data" value = "false"/>
</loadbalancer> 
3
jlpp

ヘルスチェック機能が実行されており、バックエンドサーバーが利用できないと判断しているのではないかと思います。ヘルスチェッカー構成でタイムアウト値を増やすか、完全に無効にしてみてください。プロキシするアプリケーションサーバーは1つしかないため、機能が失われることはありません。

1
Luke

あなたが言うようにプロキシが負荷分散するように設定されていて、それが指すことができるサーバーが1つしかない場合、負荷分散がターゲットアプリケーションサーバーがビジーであると見なし、そのエラーを表示することがあります。

表示されているエラーをサーバーのあらゆる種類の負荷に対応させることができますか?方程式から負荷分散を取り除いてテストする方法はありますか?ロードバランサーの設定を構成/表示して、非常に控えめなしきい値があるかどうかを確認できますか?

1
WerkkreW