WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

ユーザー出口の活用

メッセージ・フローはユーザー出口からメリットを得られます。

始める前に:

以下の図は、ユーザー出口の働きを示しています。 番号が付けられているイベントについては、図の後で説明されています。 例として MQInput ノードを使用していますが、関数は、ユーザー定義入力ノードも含め、すべての入力ノードに適用されます。 同様に、Compute および MQOutput ノードを任意の同等のノードに置き換えることができます。

基本的なメッセージ・フロー・イベント
  1. (cciInputMessageCallback) メッセージが入力ソースからデキューされる (フローへの読み取り)。

    組み込みノードとユーザー定義ノードは、ユーザー出口の呼び出し方法が少し異なります。 組み込み入力ノードの場合、データを外部ソースから読み取った後、できるだけ早期にユーザー出口が呼び出されます。 ユーザー定義の入力ノードの場合、 ノードがメッセージを伝搬する前にユーザー出口が呼び出されます。

  2. (cciPropagatedMessageCallback) メッセージが処理用にノードに伝搬される。
  3. (cciOutputMessageCallback)。 要求メッセージが出力ノードのトランスポートに送信され、トランスポート固有の宛先情報が LocalEnvironment の WrittenDestination に書き込まれる (例えば、この情報には MQ メッセージの queueName および msgId が含まれます)。 ノードがメッセージをトランスポートに正常に書き込むときに、出力ノードまたは要求ノードから呼び出しが行われます。 組み込みノードだけが、outputMessageEvent を呼び出します。 WrittenDestination 情報をサポートする各ノードのトピックには、ノードに含まれるデータに関する詳細情報が含まれています。
  4. (cciNodeCompletionCallback) ノード処理が完了する。
  5. (cciTransactionEventCallback) トランザクションが完了した後にユーザー出口が呼び出される (したがってユーザー出口の処理はそのトランザクションの一部ではありません)。 トランザクション処理がフローによって 完了されない場合でも、ユーザー出口は呼び出されます。

    「メッセージ・フロー」プロパティー「コミット・カウント」が 1 より大きい場合は、イベント 1 と 5 の間に存在する比率は多対 1 です。 この比率は、特定の入力ノードに固有のシナリオにも当てはまることがあります。例えば、MQInput ノードが「メッセージ・グループによるコミット」プロパティーを選択して構成されている場合が該当します。

任意の数のこれらのイベントを追跡するためのユーザー出口を作成できます。 これらのイベントごとに、 以下のデータがユーザー出口で使用可能です。 特記されていない限り、 アクセスはすべて読み取り専用です。
  • メッセージがデキューされる場合:
    • ビット・ストリーム
    • 入力ノード
    • 環境ツリー (読み取りおよび書き込み)
  • メッセージがノードに伝搬される場合:
    • メッセージ・ツリー (BODY 要素の読み取りおよび書き込み)
    • LocalEnvironment ツリー (読み取りおよび書き込み)
    • 例外リスト
    • 環境ツリー (読み取りおよび書き込み)
    • ソース・ノード
    • ターゲット・ノード
  • メッセージがトランスポートに送信される場合:
    • メッセージ・ツリー (BODY 要素の読み取りおよび書き込み)
    • LocalEnvironment ツリー (読み取りおよび書き込み)
    • 例外リスト
    • 環境ツリー (読み取りおよび書き込み)
    • 出力ノードまたは要求ノード
  • ノード処理が完了する場合:
    • メッセージ・ツリー (BODY 要素の読み取りおよび書き込み)
    • LocalEnvironment ツリー (読み取りおよび書き込み)
    • 例外リスト
    • 環境ツリー (読み取りおよび書き込み)
    • ノード
    • アップストリーム・ノード
    • 例外 (ある場合)
  • トランザクションの終了の場合:
    • 入力ノード
    • 例外 (ある場合)
    • 環境ツリー (読み取りおよび書き込み)

複数のユーザー出口を登録できます。登録済みの場合は、定義された順序で呼び出されます (mqsichangeflowuserexits コマンドを参照してください)。 ユーザー出口によってメッセージ・アセンブリー (Message および Environment) に行われたすべての変更は、以降のユーザー出口からも可視です。

ユーザー出口が呼び出されるときに、以下の情報を照会できます。
  • メッセージ・フロー情報:
    • メッセージ・フロー名
    • ブローカー名
    • ブローカーのキュー・マネージャー名
    • 実行グループ名
    • メッセージ・フローの「コミット・カウント」プロパティー
    • メッセージ・フローの「コミット・インターバル」プロパティー
    • メッセージ・フローの「整合トランザクション」プロパティー。
  • ノード情報:
    • ノード名
    • ノード・タイプ
    • ターミナル名
    • ノード・プロパティー
ユーザー出口は、以下の作業を実行することもできます。
  • メッセージ・アセンブリーのナビゲートおよび読み取り (Message、LocalEnvironment、ExceptionList、Environment)
  • Message 本体、LocalEnvironment、および Environment ツリーのナビゲートおよび書き込み

ユーザー出口は動的に登録でき、構成を再デプロイする必要はありません。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:45:21


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ac02145_