イベント・ソースとは、そこからモニター・イベントを発信することのできる、メッセージ・フロー中の点のことです。 各イベント・ソースは、発信されるモニター・イベントの内容を制御するプロパティーの組を持っています。
- ノードのプロパティーを表示します。
- 「モニター」タブを選択します。
- 「追加」をクリックします。
「エントリーの追加」ウィンドウが表示されます。
- 「イベント・ソース」フィールドに入力します。
フィールドには、このノードで定義できるすべてのイベントのドロップダウン・リストがあります。 イベントの wmb:eventPointData/wmb:messageFlowData/wmb:node エレメントの属性を取り込むために、イベント・ソース情報が使用されます。
イベント・ソースを選択すると、「イベント・ソース・アドレス」に対応する値が、読み取り専用プロパティーとして表示されます。
ヒント: 後ほど、mqsichangeflowmonitoring コマンドを使用してイベントを使用可能または使用不可にしようと決定する場合、「イベント名」ではなく、「イベント・ソース・アドレス」の値を指定する必要があります。
- 「イベント名」の詳細を入力します。「リテラル」または「データのロケーション」を選択してください。
すべてのモニター・イベントは、そのイベントの wmb:eventPointData/wmb:eventIdentity/@wmb:eventName 属性に置かれた名前を持ちます。 デフォルトの名前は、次の表に示されています。
イベント・ソース |
デフォルトのイベント名 |
例 |
トランザクションの開始 |
nodeLabel.TransactionStart |
MQInput.TransactionStart |
トランザクションの終了 |
nodeLabel.TransactionEnd |
MQInput.TransactionEnd |
トランザクションのロールバック |
nodeLabel.TransactionRollback |
MQInput.TransactionRollback |
ターミナル |
nodeLabel.terminal_label.Terminal |
MQInput.OutTerminal |
以下のようにして、デフォルトをオーバーライドできます。
- 代替リテラル・ストリングを指定することによって
- XPath クエリーを指定することによって。クエリーは入力メッセージ中のフィールドからイベント名を抽出します。 「編集」をクリックして、「XPath Expression Builder」を使用します。
- オプション: XPath 式を指定してイベント・フィルター・セクションを入力し、イベントを発行するかどうかを制御します。 以下のステップのいずれかを実行します。
- 式に入力 (例えば、$Body/StockTrade/Details/Value
> 10000) か、
- 「編集」をクリックして 「XPath Expression Builder」 を起動する。
式は true または false に評価するものである必要があります。また、メッセージ・ツリー内のフィールド、またはメッセージ・アセンブリー内の他の場所を参照できます。
デフォルト値は true() で、これはイベントが常に生成されることを表します。
この機能を利用すれば、一連の規則と一致しないイベントをフィルターすることにより、ビジネス要件に合わせてイベントの発行を調整できます。 これによって、発行されるイベントの数が減るため、モニター・アプリケーションへのワークロードを低減できます。
- オプション: メッセージから抽出された選択データ・フィールドをイベントに含める場合、「イベント・ペイロード」セクションに入力してください。 「追加」をクリックして、「データ・ロケーションの追加」ダイアログ・ボックスを起動します。 以下のステップのいずれかを実行します。
- ロケーションを入力する (例えば、$LocalEnvironment/File/Name)、または
- 「編集」をクリックして 「XPath Expression Builder」 を起動する。
1 つ以上のフィールドをメッセージ・データから抽出し、それをイベントに含めることができます。 このフィールドは、単純な場合と複合的な場合とがあります。
単純なコンテンツは、イベントの wmb:applicationData/wmb:simpleContent フィールドに含まれており、複合データは、wmb:applicationData/wmb:complexContent フィールドに含まれています。
この機能は、ビジネス・イベントで重要なビジネス・データを通信するために、一般的に使用されます。 イベントが入力ビット・ストリームを含む場合、この機能はキー・フィールドを抽出するためにも使用できます。
その場合、別のアプリケーションが監査証跡を提供したり、障害が生じたメッセージを再サブミットしたりすることが可能になります。
- オプション: イベントがメッセージ・ビット・ストリーム・データを取り込むことである場合には、「ビット・ストリーム・データをペイロードに含める」フィールドを選択します。
- 内容
- 「ヘッダー」、「本体」、「すべて」の中から選択します。
- エンコード
- 「base64」、「HexBinary」、および「CData」 (エンコードなしのオリジナル・テキスト) から選択します。
- オプション: 「相関」タブを選択して、イベント相関の詳細を入力します。
- 「イベント相関」の詳細を入力します。相関について詳しくは、相関とモニター・イベントを参照してください。
すべてのモニター・イベントには、少なくとも 1 つの相関属性が含まれていることが必要です。
上限は 3 つです。 相関情報を指定しないと、メッセージ・フロー中の最初のイベント・ソースが、同一トランザクション内のすべての後続イベント・ソースが使用する、固有の ID を割り振ります。
- オプション: 「ローカル・トランザクション相関関係子」の詳細を入力します。
- 自動
- メッセージ・フローのこの呼び出しに対する最新のイベントが使用したローカル相関関係子が、使用されます。 まだローカル相関関係子が存在していない場合、新しい固有値が生成されます。
- 相関関係子のロケーションの指定
- 値を入力するか、または「編集」をクリックして 「XPath Expression Builder」 を起動します。 ローカル相関関係子は、メッセージ・ツリー中に指定されたロケーションから読み取られます。 指定されたロケーションが、このメッセージ・フローの呼び出しに固有な相関関係子値を含んでいることを確認してください。
- オプション: 「親トランザクション相関関係子」の詳細を入力して、親トランザクションから相関フィールドを抽出します。
- 自動
- メッセージ・フローのこの呼び出しに対する最新のイベントが使用した親相関関係子が、使用されます。 まだ親相関関係子が存在していない場合、親相関関係子は使用されません。
- 相関関係子のロケーションの指定
- 値を入力するか、または「編集」をクリックして 「XPath Expression Builder」 を起動します。 親相関関係子は、メッセージ・ツリー中に指定されたロケーションから読み取られます。 指定されたロケーションが、その親相関関係子に適切な値を含んでいることを、確認してください。
- オプション: 「グローバル・トランザクション相関関係子」の詳細を入力して、グローバル・トランザクションから相関フィールドを抽出します。
- 自動
- メッセージ・フローのこの呼び出しに対する最新のイベントが使用したグローバル相関関係子が、使用されます。 まだグローバル相関関係子が存在していない場合、グローバル相関関係子は使用されません。
- 相関関係子のロケーションの指定
- 値を入力するか、または「編集」をクリックして 「XPath Expression Builder」 を起動します。 グローバル相関関係子は、メッセージ・ツリー中に指定されたロケーションから読み取られます。 指定されたロケーションが、そのグローバル相関関係子に適切な値を含んでいることを、確認してください。
- オプション: メッセージ・フローによるモニター・イベントの発行を、メッセージ・フロー・トランザクションと調整するか、独立した作業単位にするか、または作業単位にしないかを選択します。
「トランザクション」タブをクリックし、
「イベントの作業単位」の該当するオプションを選択します。
- メッセージ・フロー
- イベント (およびこの設定の他のイベントすべて) は、メッセージ・フローが作業単位を正常にコミットした場合にだけ発行されます。
トランザクション開始イベントがメッセージ・フローの作業単位に含まれるように指定されているのに、メッセージ処理が失敗し、この作業単位がパブリッシュされない場合、トランザクション開始イベントは独立した作業単位に含まれます。 これによりモニター・アプリケーションは、ロールバック・イベントを個別に受信するのではなく、イベントのペア (開始およびロールバック) を受信するようになります。
- 独立
- イベントは、メインの作業単位とは独立した、別の作業単位で発行されます。 イベント (およびこの設定の他のイベントすべて) は、メインの作業単位が正常にコミットされたかどうかに関わらず発行されます。
独立したトランザクションは、メインのトランザクションがコミットされるかロールバックされている場合のみ、開始できます。
フローの「コミット・カウント」プロパティーが 1 より大きい (構成可能な「メッセージ・フロー」プロパティー) か、「メッセージ・グループ別にコミット」が設定されている場合 (WebSphere MQ メッセージ・グループ内のメッセージの受信)、独立したトランザクションをターゲットとするイベントは代わりに同期点以外から発行され、発行されたことを示すメッセージが出力されます。
- なし
- イベントは (いずれかの作業単位ではなく) 同期点以外から発行されます。 メッセージがイベント・ソースを通して送られると、イベントが発行されて、すぐに読み取り可能になります。
これらのオプションすべてが、すべてのイベント・タイプで使用できるわけではありません。 デフォルト値および使用可能な値を次の表に示します。
イベント・ソース |
使用可能な値 |
デフォルト |
トランザクションの開始 |
|
メッセージ・フロー |
トランザクションの終了 |
|
メッセージ・フロー |
トランザクションのロールバック |
|
独立 |
ターミナル |
|
メッセージ・フロー |
- 「終了」をクリックします。
ノードの「プロパティー」ビューの「モニター」タブの「イベント」表は、追加されたイベントの詳細によって更新され、イベントが使用可能になります。
- オプションで、イベントを使用不可にします。
- メッセージ・フローを保存します。