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

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

モニター・プロファイル

メッセージ・フローがデプロイされた後にイベントをカスタマイズする一方、フローの再デプロイはしない場合は、モニター・プロファイル構成可能サービスを使用してください。 このサービスを使用して、モニター・プロファイルを 1 つ以上のメッセージ・フローに適用できます。

モニター・プロファイルとは、イベントを発行するメッセージ・フロー中のイベント・ソース、およびそれらイベントのプロパティーを指定する XML 文書のことです。 モニター・プロファイル XML は、XML スキーマ・ファイル MonitoringProfile.xsd に準拠している必要があります。

モニター・プロファイルの概要

構造を例示するために、1 つのイベント・ソースが入っているモニター・プロファイルの概要を以下に示します。

<p:monitoringProfile
xmlns:p="http://www.ibm.com/xmlns/prod/websphere/messagebroker/6.1.0.3/monitoring/profile" p:version="2.0">
    <p:eventSource p:enabled="true" p:eventSourceAddress="SOAPInput.transaction.Start">
        <p:eventPointDataQuery>
            <p:eventIdentity>
                <p:eventName p:literal="" p:queryText=""/>
            </p:eventIdentity>
            <p:eventCorrelation>
                <p:localTransactionId p:queryText="" p:sourceOfId="automatic"/>
                <p:parentTransactionId p:queryText="" p:sourceOfId="automatic"/>
                <p:globalTransactionId p:queryText="" p:sourceOfId="automatic"/>
            </p:eventCorrelation>
           <p:eventFilter p:queryText="true()"/>           <p:eventUOW p:unitOfWork="messageFlow" />        </p:eventPointDataQuery>
        <p:applicationDataQuery>
            <p:simpleContent p:dataType="boolean" p:name="" p:targetNamespace="">
                <p:valueQuery p:queryText=""/>
            </p:simpleContent>
            <p:complexContent p:name="" targetNamespace="">
                <p:payloadQuery p:queryText=""/>
            </p:complexContent>
        </p:applicationDataQuery>
        <p:bitstreamDataQuery p:bitstreamContent="all" p:encoding="base64Binary"/>
    </p:eventSource>
</p:monitoringProfile>
ルート・エレメントは p:monitoringProfile です。 これは 1 つ以上の p:eventSource エレメントを含みます。それぞれがイベント・ソースを指定し、そのプロパティーを定義します。 それぞれの p:eventSource エレメントには以下のものが含まれています。
  • p:eventPointDataQuery イベントに関するキー情報を提供するエレメント。
  • オプション: イベント・ペイロードがメッセージから抽出されたデータ・フィールドを含む場合の、p:applicationDataQuery エレメント。
  • オプション: イベント・ペイロードがメッセージからのビット・ストリーム・データを含む場合の、p:bitstreamDataQuery エレメント。

モニター・プロファイルの作成

モニター・プロファイルの作成に役立つ情報として、以下のサンプルには、モニター・プロファイル XML ファイルおよびモニター・プロファイル XML スキーマ・ファイル (MonitoringProfile.xsd) の概要が含まれています。

モニター・プロファイルが正しいかどうかを、XML スキーマに照らして検証します。

サンプルに関する情報は、WebSphere Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

ヒント: メッセージ・フロー・エディターを使用して構成されたモニター・プロパティーを持つデプロイ済みメッセージ・フローがある場合、mqsireportflowmonitoring コマンドを使用して、そのメッセージ・フローに対する同等のモニター・プロファイル XML ファイルを作成することができます。 このプロファイルを開始点に使用して、その他のモニター・プロファイルを作成できます。

以下のステップでは、モニター・プロファイル XML を作成する方法を説明します。 それぞれの p:eventSource エレメントに対して、以下の手順に従ってください。

  1. p:eventSource/@p:eventSourceAddress 属性を指定します。
    これはメッセージ・フロー内のイベント・ソースを一意的に識別するストリングです。 以下の表に示されているように、トランザクション・イベントおよびターミナル・イベント用に定められた書式に従う必要があります。
    イベント・タイプ イベント・ソース・アドレス
    トランザクション開始イベント nodelabel.transaction.Start
    トランザクション終了イベント nodelabel.transaction.End
    トランザクション・ロールバック・イベント nodelabel.transaction.Rollback
    ターミナル・イベント nodelabel.terminal.<Terminal>
    注: nodelabel は、ブローカー・ランタイム・コンポーネントに既知のノードのラベルです。 ノードがサブフロー内にある場合、ラベルはそれを反映します。 例えば、フロー B のインスタンスをサブフローとして含むフロー A は myB とラベル付けされ、Compute ノードのインスタンスを含むフロー B は myCompute とラベル付けされます。 この Compute ノードの nodelabel は、myB.myCompute となります。

    発行されたイベント内では、イベント・ソースのアドレス・ストリングは wmb:eventData/@wmb:eventSourceAddress 属性内で設定されます。

  2. オプション: このイベント・ソースからのイベントを識別するための名前を、p:eventPointDataQuery/p:eventIdentity/p:eventName エレメントで指定します。
    • イベント名が固定ストリングの場合、p:eventName/@p:literal 属性を入力してください。
    • イベント名がメッセージ内のフィールドから抽出される場合、XPath 照会を指定して p:eventName/@p:queryText 属性を入力してください。

    発行されたイベント内では、イベント名は wmb:eventPointData/wmb:eventIdentity/@wmb:eventName 属性内で設定されます。

    p:eventName エレメントが提供されていない場合、発行されたイベント内の @wmb:eventName はデフォルトで @p:eventSourceAddress になります。

  3. オプション: XPath 式を指定して p:eventPointDataQuery/p:eventFilter/@p:queryText 属性を入力し、イベントを発行するかどうかを制御します。 式は、true (イベントが発行される) または false (イベントは発行されない) に評価されるものでなければなりません。 式は、メッセージ・ツリー内のフィールド、またはメッセージ・アセンブリー内の他の場所を参照できます。 イベントに eventFilter エレメントが含まれていない場合、そのイベントは常に発行されます。

    この機能を利用すれば、一連の規則と一致しないイベントをフィルターすることにより、ビジネス要件に合わせてイベントの発行を調整できます。 これによって、発行されるイベントの数が減るため、モニター・アプリケーションへのワークロードを低減できます。

  4. オプション: メッセージから抽出される選択されたデータ・フィールドをイベントに含める場合は、p:applicationDataQuery エレメントに入力してください。 1 つ以上のフィールドをメッセージ・データから抽出し、それをイベントに含めることができます。 このフィールドは、単純な場合と複合的な場合とがあります。
    • 各単純型データ・フィールドについては、以下の p:simpleContent エレメントを入力します。
      • XPath 照会を指定して、p:simpleContent/p:valueQuery/@p:queryText 属性を入力します。
      • p:simpleContent/@p:name@p:namespace および @p:dataType 属性を入力します。 @p:dataType の値は、booleandatedateTimedecimaldurationintegerstring または time のいずれかにする必要があります。
    • 各複合データ・フィールドについては、以下の p:complexContent エレメントを入力します。
      • XPath 照会を指定して、p:complexContent/p:payloadQuery/@p:queryText 属性を入力します。
      • p:complexContent/@p:name および @p:namespace 属性を入力します。

    この機能は、ビジネス・イベントで重要なビジネス・データを通信するために、一般的に使用されます。 イベントが入力ビット・ストリームを含む場合、この機能はキー・フィールドを抽出するためにも使用できます。 その場合、別のアプリケーションが監査証跡を提供したり、障害が生じたメッセージを再サブミットしたりすることが可能になります。

    発行されたイベント内では、抽出されたデータは wmb:applicationData/wmb:simpleContent および wmb:applicationData/wmb:complexContent エレメント内で設定されます。

  5. オプション: イベントがメッセージ・ビット・ストリーム・データを取り込むことである場合には、以下の p:bitstreamDataQuery エレメントを入力します。
    • @p:bitstreamContent 属性を入力します。 属性値は headersbody、または all のいずれかとなる必要があります。
    • @p:encoding 属性を入力します。 属性値は CDATAbase64Binary または hexBinary のいずれかとなる必要があります。

    発行されたイベント内では、抽出されたビット・ストリーム・データは wmb:bitstreamData/wmb:bitstream エレメント内で設定されます。

  6. オプション: p:eventPointDataQuery/p:eventCorrelation エレメントを入力します。 相関の詳細については、相関とモニター・イベントを参照してください。

    発行されるすべてのモニター・イベントには、最大 3 つの相関属性を含めることができます。 モニター・プロファイル内で相関情報が指定されていない場合、相関属性は使用されません。

    1. オプション: p:localTransactionId エレメントを入力します。
      • 環境ツリーからローカル相関関係子を再利用する場合、p:localTransactionId/@p:sourceOfId 属性を「自動」に設定します。 まだローカル相関関係子が存在していない場合、新しい固有値が生成され、環境ツリー内に保存されます。
      • メッセージ内のロケーションに含まれている値を使用する場合、p:localTransactionId/@p:sourceOfId 属性を照会に設定し、XPath 照会を指定して p:localTransactionId/@p:queryText 属性を入力してください。 指定されたロケーションが、このメッセージ・フローの呼び出しに固有な相関関係子値を含んでいることを確認してください。 その値は環境ツリーに保存されます。
    2. オプション: p:parentTransactionId エレメントを入力します。
      • 環境ツリーから親相関関係子を再利用する場合、p:parentTransactionId/@p:sourceOfId 属性を自動に設定します。 まだ親相関関係子が存在していない場合、親相関関係子は使用されません。
      • メッセージ内のロケーションに含まれている値を使用する場合、p:parentTransactionId/@p:sourceOfId 属性を照会に設定し、XPath 照会を指定して p:parentTransactionId/@p:queryText 属性を入力します。 指定されたロケーションが、その親相関関係子に適切な値を含んでいることを、確認してください。 その値は環境ツリーに保存されます。
    3. オプション: p:globalTransactionId エレメントを入力します。
      • 環境ツリーからグローバル相関関係子を再利用する場合、p:globalTransactionId/@p:sourceOfId 属性を自動に設定します。 まだグローバル相関関係子が存在していない場合、グローバル相関関係子は使用されません。
      • メッセージ内のロケーションに含まれている値を使用する場合、p:globalTransactionId/@p:sourceOfId 属性を照会に設定し、XPath 照会を指定して p:globalTransactionId/@p:queryText 属性を入力してください。 指定されたロケーションが、そのグローバル相関関係子に適切な値を含んでいることを、確認してください。 その値は環境ツリーに保存されます。
  7. p:eventPointDataQuery/p:eventUOW エレメントを入力します。 これによって、メッセージ・フローによるモニター・イベントの発行をメッセージ・フロー・トランザクションと調整するか、独立した作業単位にするか、または作業単位にしないかが決まります。
    p:eventUOW/@p:unitOfWork 属性を、以下のいずれかの値に設定します。
    messageFlow
    イベント (およびこの設定の他のイベントすべて) は、メッセージ・フローが作業単位を正常にコミットした場合にだけ発行されます。

    トランザクション開始イベントがメッセージ・フローの作業単位に含まれるように指定されているのに、メッセージ処理が失敗し、この作業単位がパブリッシュされない場合、トランザクション開始イベントは独立した作業単位に含まれます。 これによりモニター・アプリケーションは、ロールバック・イベントを個別に受信するのではなく、イベントのペア (開始およびロールバック) を受信するようになります。

    independent
    イベントは、メインの作業単位とは独立した、別の作業単位で発行されます。 イベント (およびこの設定の他のイベントすべて) は、メインの作業単位が正常にコミットされたかどうかに関わらず発行されます。

    独立したトランザクションは、メインのトランザクションがコミットされるかロールバックされている場合のみ、開始できます。 フローの「コミット・カウント」プロパティーが 1 より大きい (構成可能な「メッセージ・フロー」プロパティー) か、「メッセージ・グループ別にコミット」が設定されている場合 (WebSphere MQ メッセージ・グループ内のメッセージの受信)、独立したトランザクションをターゲットとするイベントは代わりに同期点以外から発行され、発行されたことを示すメッセージが出力されます。

    none
    イベントは (いずれかの作業単位ではなく) 同期点以外から発行されます。 メッセージがイベント・ソースを通して送られると、イベントが発行されて、すぐに読み取り可能になります。
    これらのオプションすべてが、すべてのイベント・タイプで使用できるわけではありません。 使用可能な値を次の表に示します。
    イベント・タイプ 使用可能な値
    transaction.Start
    • messageFlow
    • independent
    • none
    transaction.End
    • messageFlow
    • none
    transaction.Rollback
    • independent
    • none
    ターミナル (terminal)
    • messageFlow
    • independent
    • none
    イベント・ソースに eventUOW エレメントを含めていない場合、transaction.rollback イベントを除く、そのソースから発行されるすべてのイベントのトランザクション特性は messageFlow にデフォルト設定されます。 transaction.rollback イベントのトランザクション特性は、independent にデフォルト設定されます。

XPath 照会および XML ネーム・スペース

XPath 照会が XML ネーム・スペースを持つコンポーネントを含んでいる場合、XPath はネーム・スペース用のネーム・スペース接頭部を含みます。 例えば、以下の XPath は 2 つの異なるネーム・スペース内のコンポーネントを参照します。

<p:localTransactionId p:sourceOfId="query" p:queryText="$Body/soapenv:Header/wsa:messageID" />

ブローカーがネーム・スペース接頭部を解決するように、ネーム・スペース URL も提供する必要があります。 それぞれのネーム・スペースの接頭部マッピング・エレメントを以下のように提供します。

      <p:localTransactionId p:sourceOfId="query" p:queryText="$Body/soapenv:Header/wsa:messageID">
        <p:prefixMapping p:prefix="soapenv" p:URI="http://www.w3.org/2003/05/soap-envelope" />
        <p:prefixMapping p:prefix="wsa" p:URI="http://www.w3.org/2005/08/addressing" />
      </p:localTransactionId>

モニター・プロファイルの例

以下の XML 文書は、モニター・プロファイル・スキーマに準拠しています。

モニター・プロファイル 1: 2 つのイベント・ソースが各々 1 つのイベント名を提供

<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.Start">
  <p:eventPointDataQuery>
    <p:eventIdentity>
      <p:eventName p:literal="SOAP start event"/>
    </p:eventIdentity>
  </p:eventPointDataQuery>
 </p:eventSource>
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.End">
  <p:eventPointDataQuery>
    <p:eventIdentity>
      <p:eventName p:literal="SOAP end event"/>
    </p:eventIdentity>
  </p:eventPointDataQuery>
 </p:eventSource>
</p:monitoringProfile>
モニター・プロファイル 2: 代替ローカル相関関係子の指定
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="SOAPInput.transaction.Start">
  <p:eventPointDataQuery>
    <p:eventCorrelation>
      <p:localTransactionId p:queryText="$Body/soapenv:Header/wsa:messageID" p:sourceOfId="query">
        <p:prefixMapping p:prefix="soapenv" p:URI="http://www.w3.org/2003/05/soap-envelope"/>
        <p:prefixMapping p:prefix="wsa" p:URI="http://www.w3.org/2005/08/addressing"/>
      </p:localTransactionId>
    </p:eventCorrelation>
  </p:eventPointDataQuery>
 </p:eventSource>
</p:monitoringProfile>
モニター・プロファイル 3: メッセージから 2 つの単純型フィールドが含まれる
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="MQInput.terminal.out">
  <p:applicationDataQuery>
    <p:simpleContent p:dataType="integer" p:name="InvoiceNumber">
      <p:valueQuery p:queryText="$Body/invoice/invoiceNo"/>
    </p:simpleContent>
    <p:simpleContent p:dataType="string" p:name="BatchID">
      <p:valueQuery p:queryText="$Body/batch/batchNo"/>
    </p:simpleContent>
  </p:applicationDataQuery>
 </p:eventSource>
</p:monitoringProfile>
モニター・プロファイル 4: CDATA としてエンコードされたビット・ストリームが含まれる
デフォルトでは、ビット・ストリームは base64Binary 形式でエンコードされます。以下のモニター・プロファイルは、エンコード方式を CDATA に変更します。
<p:monitoringProfile p:version="2.0">
 <p:eventSource p:eventSourceAddress="MQInput.terminal.out">
    <p:bitstreamDataQuery p:bitstreamContent="body" p:encoding="CDATA"/>
 </p:eventSource>
</p:monitoringProfile>
CDATA エンコード方式はすべてのタイプのデータにおいて適切であるわけではありません。 @p:bitstreamContent="body" の場合には、CDATA のみを使用してください。 XML では許容されない文字がメッセージ・ビット・ストリームに含まれる可能性がある場合には、CDATA を使用しないでください (http://www.w3.org/TR/2006/REC-xml-20060816/#charsets を参照)。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

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


参照トピック参照トピック | バージョン 8.0.0.5 | ac37900_