メッセージ・フローを再設計しないで、メッセージ・フロー内でのメッセージの進行をインターセプトするには、ユーザー出口を使用します。
ユーザー出口によって、アクション (モニター、メッセージ追跡、監査など) を、 デプロイ済みのメッセージ・フローに対して実行時の操作によって適用するための手段が提供されます。
ユーザー出口を使用して、ロード可能出口ライブラリー (LEL) に備わっているカスタム C コードを、 デプロイ済みのメッセージ・フロー内にあるメッセージ・トランザクションのキーポイントで、コールバックを使用して呼び出すことができます。 これらのユーザー出口はユーザー定義拡張の API にあるユーティリティー関数を使用して、 ブローカー、実行グループ、メッセージ・フロー、ノード、およびメッセージ・アセンブリーに関する詳細を抽出できます。 さらに、ユーザー出口はユーザー定義拡張の API にあるユーティリティー関数を使用して、 メッセージ・アセンブリーのパーツを変更できます。
ユーザー出口を記述するためには、WebSphere® Message Broker および そのアーキテクチャーに精通した、熟達したプログラマーであることが必要です。 ユーザー出口のテストおよびデバッグは時間がかかることがあり、安全な環境で行う必要があります。 また、自分のユーザー出口を維持して保守する必要もあります。
ユーザー出口のコールバックは、現行のメッセージ・トランザクションとインラインで実行します。 つまり、トランザクションの進行は、コールバックからの戻りが受け取られるまでブロックされます。 ユーザー出口のコールバックにあるメッセージを更新すると、 それ以外の方法ではメッセージ・フロー内の入力メッセージが変更されない場合には特に、パフォーマンスに影響を与えることがあります。
要求時の構文解析 (部分構文解析) は、メッセージ・アセンブリー内での現在の参照に応答するために必要な程度だけメッセージ・ビット・ストリームを構文解析するために使用されます。 ユーザー出口は、各コールバック・ポイントでメッセージをナビゲートできます。 つまり、ユーザー出口を使用可能にすると、メッセージ・フローの構文解析のタイミングが変更されます。