RqRtBlock

式エディタ > 関数ディレクトリ

 

リクエストの受付をブロックします。

サーバによって発行された内部/外部リクエスト(同期か非同期に関わらず)がサーバに到達することを防ぎます。サーバがMRBと全く接続しなかったかのように、リクエストは処理されます。例えば、各リクエストのブローカータイムに基づいて待ち続けます。

構文:

RqRtBlock (サーバ/サービス名, 実行エンジン番号, Supervisor パスワード, 全て)

パラメータ:

サーバ/サービス名 … [サービス/サーバ]テーブルに定義されているサーバ/サービス名。サービス名が指定された場合、そのサービスに対応するサーバからのリクエストがブロックされます。

エントリ番号 … 実行エンジンの内部番号を示す数値。ここで指定する実行エンジンは、RqRts関数で検索したもののいずれかでなければなりません(したがって、この関数は、RqRts 関数の後で呼び出さなければなりません)。

  • この値を「0」に設定した場合、全ての実行エンジンがブロックされます。

  • この値を「-1」に設定した場合、現在のエンジンがブロックされます。

Supervisor パスワード …MGRB.INIファイルに設定されたPasswordSupervisorパラメータで設定されたパスワード

全て … 論理値

  • True … 全てのリクエストがブロックされます。

  • False …外部のリクエストのみブロックされます。

戻り値:

論理値 … アプリケーションサーバがブロックされたり、必要な状態の場合は「True」が返ります。ブロックできなかった場合は「False」が返ります。
アプリケーションサーバが以下の状態でない場合、この関数は失敗します。

  • AVAIL Idle

  • AVAIL Running

  • BUSY Request

  • BLOCKED

  • BLOCKED external

サービス名やエンジン番号が正しくない場合は、この関数は失敗します。また、Supervisorパスワードが正しくない場合も失敗します。

例:

RqRtBlock ('Default Broker', BA, 'Secret', 'FALSE'LOG)

 

変数項目「BA」には、エンジン番号が一時的に保存されているものとします。この番号は、RqRts関数で取得します。

注意事項:

特に、アプリケーションサーバから「I am alive」メッセージが送られなかったり、アプリケーションサーバが開発モードに切り替わったりするような場合でなければ、ブロックされたアプリケーションサーバは、RqRtResume関数によってロック状態が解除されます。