リクエスト多重度超過への対応

事象説明

    1つのクライアントからの同時リクエスト数が設定値を越えた場合に本エラーとなります。WebOTXのサーバ実行環境に直接richクライアントが接続される形態でこのエラーが起きることは稀ですが、途中にWebサーバが入る形態では時々起きます。Webサーバでは複数のブラウザからの要求を各スレッドで平行して処理するのが普通で、WebOTXに対するリクエストも複数同時に発行されることが多々ありますが、それらリクエストは一本のコネクションを使って送られるため、その数、つまりリクエスト多重度が制限を越えると本エラーになります。

    このエラーが起きる原因は2つあります。

      (1)APの処理が予定よりも遅延しているか無応答となっている場合
      (2)純粋に要求数が多くて処理が追いつかない場合。

状況の確認方法

    イベントログ・syslogに以下のメッセージが出力されます。

      OTXM:<システム名>: IIOPLSN_CLS:<プロセスID>: W:1:TPS07-00825 TPBASE SG MAX ASYNC TX
      
    クライアントにはCORBA::NO_RESOURCES(3844)が返ります。多くの場合、Webサーバのログにこのメッセージが出てきます。

原因の特定

    2つの原因のいずれが起きているかを特定する必要があります。
    まず、quewrtコマンドでキューの滞留状況を確認してください。quewrtコマンドの使用法については、 [ 構築・運用 > ドメインの構築 > TPシステム > キュー滞留情報 ] を参照してください。 あきらかに滞留数が異常なものがある場合は統合運用管理ツールでそのプロセスグループの「動作情報」タブにある「スレッド情報」を確認してください。オペレーション実行中で且つ実行開始からの時間が通常考えられない長時間となっている場合、そのオペレーションで無応答状態となっていて、そのオペレーションを呼び出した要求がのきなみ応答待ちとなってしまう結果、同時リクエスト数が超過してしまった可能性があります。以降は [ APストールへの対応 ] の項を参照してください。

    次にオペレーションジャーナルで障害発生までのオペレーション処理時間を確認してください。オペレーションジャーナルの使用法は、 [ 構築・運用 > ドメインの構築 > TPシステム > 統計情報(オペレーションジャーナル) ] を参照してください。処理時間が予定よりも長くなっている場合はその遅延が原因の可能性があります。以降は [ オペレーション遅延への対応 ] の項を参照してください。
    以上の確認で特に問題が見つからない場合、純粋に要求数が多くて本エラーになっている可能性があります。

予防のための対策

    純粋に要求数が多くて本エラーになっていると考えられる場合は多重度の設定値を見直してください。統合運用管理ツールで「IIOPListener」-「クライアント制御」-「1セッションあたりのリクエスト多重度」を変更します。

    APのストールや理論上ありえない遅延が原因と考えられる場合はAP修正による対処が必要です。

    やむを得ない遅延が原因と考えられる場合は多重度の設定値を見直してください。

    原因がよくわからない場合、とりあえず多重度の設定値を上げて回避してみることも考えられます。その結果、本障害が二度と起きなくなるようなら正しい対処をしたといえますが、APのストールや理論上ありえない程の遅延という問題を含んでいる場合には多重度をあげてもすぐに再発します。

対象となるエラー事象

    TPS07-00825, CORBA::NO_RESOURCES(3844)


関連情報