ユーザー出口は、メッセージ・フローを移動するデータを追跡するための、C で作成されたユーザー提供のカスタム・ソフトウェアです。
ユーザー提供の関数を起動できるのは、メッセージのライフ・サイクル中にメッセージ・フローを通してメッセージが送られている間の特定の時点においてであり、またこの関数は、ユーティリティー関数を呼び出して、フロー内の点に関する情報およびメッセージ・アセンブリーの内容を照会できます。 ユーティリティー関数は、メッセージ・アセンブリーの特定の部分を変更することもできます。
ユーザー出口の使用の詳細は、ユーザー出口を使用する理由を参照してください。
ユーザー出口は、以下の 1 つ以上のイベントが発生したときに呼び出されます。
- 作業単位 (UOW) またはトランザクション (COMMIT または ROLLBACK) の終了
- メッセージが 2 つのノードの間で受け渡しされたとき。
- メッセージが正常にキューに入れられたか、出力、応答、または要求ノードのトランスポートに送信されたとき。
- メッセージがデキューされたか、入力、応答、または TimeoutNotification ノードで受信されたとき。
ここに示されている基本的なメッセージ・フローでは、以下の 3 つのレベルでメッセージを追跡することができます。
- トランザクション・レベル
- ノード・レベル
- 入力または出力レベル
トランザクション・レベルでは、以下のイベントを追跡できます。
- フローへのメッセージの読み取り
- トランザクションの完了。
ノード・レベルでは、以下のイベントを追跡できます。
- ノード間でのメッセージの引き渡し
- 特定のノードでの処理の完了。
メッセージ入力または出力レベルでは、以下のイベントを追跡できます。
- フローへのメッセージの読み取り
- フローからのメッセージの書き込み
したがって、5 つの異なるタイプのイベントを追跡でき、これらのイベントは以下の順序で発生します。
- メッセージが入力ソースからデキューされる (フローへの読み取り)。
- メッセージが処理用にノードに伝搬される。
- 要求メッセージが出力ノードのトランスポートに送信され、トランスポート固有の宛先情報が LocalEnvironment の「WrittenDestination」に書き込まれる。
- ノード処理が完了する。
- トランザクションは終了する。