9.147 MESSAGE_COLLECTOR

ファンクションを「メッセージ・コレクター」として指定します。 

引数 

引数値はありません。 

戻り値 

戻り値はありません。 

技術上の注記

  • この組み込み関数で、ファンクション自身を「メッセージ・コレクター」として指定することができます。つまり、ほとんどのメッセージは、この組み込み関数を直接経由した後に、(呼び出すファンクションから、呼び出すI/Oモジュールから、起動するトリガーから)送信されることになります。通常、関連する各オブジェクトの実行が完了した時に、メッセージは呼び出しスタックまで送付されます。

  • この組み込み関数は定義ファンクションです。ファンクションのどこにでも指定できるため、エントリー時にファンクションをコレクター・スタックに追加して、終了時に削除することができます。 
    MESSAGE_COLLECTOR組み込み関数は、実行ファンクションではなく、定義ファンクションです。したがって、以下のようなコードを作成することはできません。
          if ( ....... )
    use MESSAGE_COLLECTOR
    endif

 このコードは、IF条件に関係なくメッセージ・コレクターになります。

  • 通常、USE MESSAGE_COLLECTORコマンドは、ファンクションの初めのFUNCTIONコマンドの直後に指定します。

  • この組み込み関数は、非常に複雑で奥が深い一連のファンクション呼び出しやトリガーの、最上部に置かれているインタラクティブ・ファンクションやバッチ・ファンクションで使用することを目的として作られています。通常、メインストリームのアプリケーションでは必要ありません。

  • この組み込み関数は、このような特別なタイプのアプリケーションの速度を上げる目的で作られています。処理ロジックやアーキテクチャを少しでも変えるものではありません


警告:

  • いかなる場合においても、 MESSAGE_COLLECTOR組み込み関数の使用が、アプリケーションの動作に影響を与えるようなアプリケーションを設計してはいけません。つまり、この組み込み関数を使用してもしなくても、アプリケーションは機能的に同一のものでなければなりません。MESSAGE_COLLECTOR はメッセージ・ルーティングの速度を上げるためだけに使用されなければなりません。正しい動作がこの組み込み関数に依存してしまうような、他の形式のロジックやアーキテクチャの実装に使用してはいけません。 

    設計者がどのようにしてもMESSAGE_COLLECTORを使用して処理を変更することはできないと考えられていましたが、この重要な点に留意するべきです。Visual LANSAで使用されるメッセージ・ルーティング・ロジックは、IBM i のメッセージ・ルーティング・アーキテクチャよりも効率的であり、高速化のためにこの特別オプションは必要ありません。

  • メッセージ・コレクターを10個まで蓄積することができます。
  • No labels