ページの先頭です。
ここから本文です。

お知らせ

[WebOTX] Webサーバへの同時接続数が一定数を超えると、負荷減少時にWebサーバのプロ セスが再起動される問題と対策について(WebOTX V9)

概要

WebOTX WebサーバやIISとajpリスナが連携している場合に、Webサーバへの同 時接続数がconnection_pool_size設定値の半分より増えた後、それより少ない 状態となるとWebサーバが再起動する場合があります。


影響のある製品

次の製品が該当します。

  • WebOTX Application Server Express V9.1~V9.3
  • WebOTX Application Server Standard V9.1~V9.3
  • WebOTX Application Server Enterprise V9.1~V9.3
  • WebOTX Portal V9.1

上記の環境において Web サーバプラグインのバージョンが以下となっている 場合に問題があります。

  • バージョン:1.2.37.1 ~ 1.2.40.1

WebOTX V8にも影響があります。詳細は、本ページ下部の関連情報をご参照ください。


詳細

Webサーバプラグインのコネクションプール制御機能に問題があり、コネクションプール サイズの半分以上のコネクションプールが使われた後にWebサーバのプロセスがアボート する場合があります。

本事象が発生した場合は、Webサーバの制御によりアボートしたプロセスは再起動 されます。そのため、リクエストを送信してレスポンス待ちの状態であった ブラウザには「このページは表示できません」等のエラーが表示されます。

該当プロセスが再起動された後に受け付けたリクエストについては正常に処理さ れます。

本事象が発生した場合にログに出力されるメッセージを以下に記載します。

  • WebOTX Web Server(Apache)の場合
  • <ドメインディレクトリ>\logs\web\error.log (※)

    Parent: child process exited with status 255 -- Restarting.

    (※) Linux または HP-UX の場合、ファイル名は error_log となります。


  • IIS の場合
  • Windows のイベントログ(アプリケーション)に以下のログが出力されます。

    レベル エラー

    ソース Application Error

    イベントID 1000


    障害が発生しているアプリケーション w3wp.exe

    障害が発生しているモジュール isapi_redirect.dll

    バージョン <isapi_redirect.dllのファイルバージョン>

    例外コード 0xc0000005



本事象が発生する環境

本事象は、次の条件を満たす環境で発生する可能性があります。

  • V9.1x.xx.xx/V9.2x.xx.xx
  • 下記の環境条件、設定条件のいずれも合致する場合

    • 環境条件(次のいずれか)
      • WebOTX のエディションがExpress
      • WebOTX のエディションが Standard, Enterprise で、Web コンテナの動作モード がスタンダードモード
    • 設定条件(次のいずれか)
      • workerプロパティ(※)の connection_pool_timeout を0に設定しておらずかつ connection_pool_minsize をconnection_pool_sizeと同値に設定していない
      • workerプロパティ(※)の ping_mode に "I" または "A"を設定している

  • V9.30.xx.xx
  • 下記の環境条件、設定条件のいずれも合致する場合

    • 環境条件(次のいずれか)
      • WebOTX のエディションが Express
      • WebOTX のエディションが Standard, Enterprise で、Web コンテナの動作モード がスタンダードモードの場合、もしくは、Web コンテナの動作モードがアドバンス ドモードで、WebコンテナとWebサーバの連携モードをAJPプロトコルで利用している
    • 設定条件(次のいずれか)
      • workerプロパティ(※)の connection_pool_timeout を0に設定しておらずかつ connection_pool_minsize をconnection_pool_sizeと同値に設定していない
      • workerプロパティ(※)の ping_mode に "I" または "A"を設定している

      (※)workerプロパティ:

      ${INSTANCE_ROOT}/config/WebCont/workers.properties に定義されているworker のプロパティ。



WebOTXの動作モードの確認方法

ご利用されている WebOTX がスタンダードモードで動作しているかどうかを確認するた めには、以下のコマンドを実行してください。

otxadmin> get server.web-container.processMultiplicity

コマンドの実行結果が以下のように false が表示された場合はスタンダードモードで動 作しています。

server.web-container.processMultiplicity = false

上記の結果がtrueの場合はアドバンスドモードで動作しています。

V9.3の場合にWebコンテナとWebサーバの連携モードがAJPプロトコルで動作しているかど うかを確認するためには、以下のコマンドを実行してください。

otxadmin> get server.web-container.advanced-mode-protocol

コマンドの実行結果が以下のように ajp と表示された場合はAJPプロトコルで動作して います。

server.web-container.advanced-mode-protocol = ajp



Webサーバプラグインのバージョン確認方法

Webサーバプラグインのバージョンの確認方法は以下のとおりです。

以下の説明では、WebOTXのインストール・ディレクトリを「<INSTALL_ROOT>」と略します。 デフォルトはWindowsが「C:\WebOTX」、UNIXが「/opt/WebOTX」です。

  • WebOTX Web Server(Apache)をご利用の場合
  • 以下のファイルにバージョン情報が出力されます。

    ${INSTANCE_ROOT}/logs/web/error.log

    (Linux または HP-UX の場合、ファイル名は error_log となります)。

    下記の「********」部分がバージョンとなります。

    「Webserver_Plugin/******** configured.」

  • IIS をご利用の場合
  • isapi_redirect.dll をエクスプローラで選択して右クリックメニューで プロパティを開き「詳細」より、「ファイルバージョン」を確認します。

    isapi_redirect.dll は以下のフォルダにあります。

    [32bitの場合]

    ${INSTALL_ROOT}\bin\win32\i386

    [64bitの場合]

    ${INSTALL_ROOT}\bin\win64\x64


対処方法

本件の問題に対応するパッチを提供します。次のダウンロードページから該当するモジュールをダウンロードしてください。

WebOTX Webサーバプラグイン パッチモジュール (V9.1~V9.5)

(注意) パッチモジュールは製品保守契約を結んでいただいたお客様に限定して提供させていただいています。まだ契約がお済みでないお客様は、保守契約締結の後、ダウンロードをお願いいたします。


回避方法

以下のどちらかの方法により、プロセスのアボートが無くなりリクエスト失敗の事象が Webサーバに接続中の全クライアントから個別のクライアントに局所化されます。

  • Webサーバプラグインのコネクションキャッシュ最小サイズをコネクションキャッシュサイ ズと同じにする。
  • コネクションプールタイムアウト時間を0に設定してpingモードは既定の未設定とする

以下の手順で設定を変更します。

(※) 以下の説明では、WebOTX のドメイン・ディレクトリを「INSTANCE_ROOT」と略します。 デフォルトはWindowsが「C:\WebOTX\domains\domain1」、UNIXが「/opt/WebOTX/domains/domain1」 です。

(※) OSの種別に関わらずパス区切りは"/"と表記しています。

  1. ${INSTANCE_ROOT}/config/WebCont/workers.properties を開いて workerに "connection_pool_minsize" プロパティを追加して、 connection_pool_size と同じ値を設定、またはconnection_pool_timeout=0 を設定します。
  2. プールサイズが150で、pingモードにインターバルを指定している場合の 設定例を以下に示します。いずれも下線部分が回避のための設定になります。

    • 例1. コネクションキャッシュ最小サイズの設定で回避
    •        -----------------------------------------
             worker.ajp13.connection_pool_size=150
             worker.ajp13.connection_pool_minsize=150
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
             #worker.ajp13.ping_mode=I
             ~
             -----------------------------------------
      
           
    • 例2. コネクションプールタイムアウト時間の設定で回避
    • ----------------------------------------- worker.ajp13.connection_pool_size=150 worker.ajp13.connection_pool_timeout=0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ #worker.ajp13.ping_mode=I ~ -----------------------------------------
  3. WebOTX Webサーバ(Apache)/IISを再起動します。

更新履歴

  • 2016/07/20 初版
  • 2019/01/11 第2版 「対処方法」にパッチを追加

製品名カテゴリ

WebOTX
WebOTX Application Server

関連情報

  • コンテンツID: 3010101769
  • 公開日: 2016年07月20日
  • 最終更新日:2019年01月11日
ここからページ共通メニューです。 ページ共通メニューを読み飛ばす。