監査機能としてのブローカーの使用

概説

このシナリオでは、マッピングを使って定義された、データベース更新を使用します。ブローカーが仮予約の確認を受け取ると、メッセージ・フローはこの確認を表す行をデータベース表に挿入するとともに、別の表にある確認のキーを表すカウンターを更新し、さらには 3 番目の表からこの仮予約を削除します。

このシナリオでは、メッセージ・フローの中で DataDelete、DataInsert、および DataUpdate ノードを使用します。また、以下のマッピング機能を必要とします。
  • DataInsert ノードにおけるマッピング
  • 入力データを結合して単一の挿入にする
  • DataUpdate ノードにおけるマッピング
  • DataDelete ノードにおけるマッピング
  • データ・ソースをオーバーライドするための bar ファイル

Message Broker ツールを使用して、メッセージ・フローとメッセージ・セットを作成するとともに、bar (ブローカー・アーカイブ) ファイルを作成およびデプロイします。さらに、構成マネージャーとブローカーを作成する必要もあります。Message Broker ツール内で、構成マネージャーへのドメイン接続を作成し、ドメイン内にブローカーを作成します。MQRFH2 ヘッダーを (オプションで) 入れることのできるインスタンス・メッセージを入力するためのメソッド (argoput、rfhutil など) も必要です。

ステップ 1. 複数のフィールドから成る入力データをデータベースの単一の挿入レコードにマップし、次いで別の表を更新し、3 番目の表から削除を行う、というフローを開発する。また、対応するメッセージ・モデルおよびインスタンス・メッセージを開発する。

  1. データベース (たとえば、MAPDB) を作成し、以下の列を持つ表 CONFIRMATION を作成します。
    RESID                INTEGER
  2. CONFIRMATION 表に以下の値を取り込みます。
    9052 
  3. 以下の列を持つ別の表 RESERVATION を作成します。
    RESID           INTEGER
    NAME            VARCHAR(20)
    PARTY           INTEGER
    PAYMENT         DECIMAL(8,2)
  4. RESERVATION 表に次の値を取り込みます。
    8214,'ARCHIBALD',2,0.0
    2618,'HENRY', 4, 120.0
    9052,'THAW', 3, 85.0
  5. 以下の列を持つ別の表 PROVISIONAL を作成します。
    RESID                  INTEGER
  6. PROVISIONAL 表に以下の値を取り込みます。
     8214 2618 
  7. データベース用の Windows ODBC データ・ソース名を作成した後、データベースを構成マネージャーに登録します (「ファイル」->「新規」->「RDB 定義ファイル」の順にクリックします)。
  8. メッセージ・セット・プロジェクト、メッセージ・セット MAPPING3_AUDIT_messages (ネーム・スペースは有効、XML ワイヤー形式に設定)、およびメッセージ定義ファイル AUDIT を作成します。
  9. 以下の構造を持つメッセージ addev1 を作成します。
    addev1
       id                (xsd:int) local element
       status            (xsd:string) local element
       name              (xsd:string) local element
       size              (xsd:int) local element
       payment           (xsd:decimal) local element
  10. メッセージ・フロー・プロジェクト MAPPING3_AUDIT_flows を作成します。
  11. メッセージ・フロー addev1 を作成し、これに MQInput -> DataInsert -> DataUpdate -> DataDelete-> MQOutput を含めます。
  12. DataInsert ノードでは、「データ・ソース」プロパティーを MAPDB に設定します。
  13. DataInsert ノードのマッピングを開き、MAPPING3_AUDIT_messages addev1 をソースとして、MAPDB.SCHEMA.CONFIRMATION をターゲットとして選択します。
  14. 次のようにしてソースとターゲットを接続します。
    addev1             MAPDB
           id -------------- RESID
  15. DataUpdate ノードでは、「データ・ソース」プロパティーを MAPDB に設定します。
  16. DataUpdate ノードのマッピングを開き、MAPPING3_AUDIT_messages addev1 をソースとして、MAPDB.SCHEMA.RESERVATION をターゲットとして選択します。
  17. 次のようにしてソースとターゲットを接続します。
    addev1             MAPDB
           id -------------- RESID
           name ---------- NAME
           size ------------ PARTY
           payment ------- PAYMENT
  18. スプレッドシート・エディターで $db:update を選択し、fn:true() を $db:update.MAPDB.MQSI.RESERVATION.RESID = $source/addev1/id および $source/addev1/status = 'CONFIRM' に変更します。
  19. DataDelete ノードでは、「データ・ソース」プロパティーを MAPDB に設定します。
  20. DataDelete ノードのマッピングを開き、MAPPING3_AUDIT_messages addev1 をソースとして、MAPDB.SCHEMA.PROVISIONAL をターゲットとして選択します。
  21. スプレッドシート・エディターで $db:delete を選択し、fn:false() を $db:delete.MAPDB.MQSI.PROVISIONAL.RESID = $source/addev1/id に変更します。
  22. 適切な RFH2 ヘッダーを持つ、以下のインスタンス・メッセージを作成します。
    <addev1>
    <id>8214</id>
    <status>CONFIRM</status>
    <name>ARCHIBALD</name>
    <size>2</size>
    <payment>1038.0</payment>
    </addev1>
ステップ 1 の結果: メッセージ・セット MAPPING3_AUDIT_messages が作成され、メッセージ addev1 が取り込まれる。メッセージ・フロー addev1 がプロジェクト MAPPING3_AUDIT_flows に作成される。これにはマッピング・ファイル addev1_DataInsert.msgmap および addev1_DataUpdate.msgmap および addev1_DataDelete.msgmap が含まれる。データベース MAPDB が作成される。これには CONFIRMATION、RESERVATION、および PROVISIONAL というデータを取り込まれた表が含まれる。テスト用インスタンス・メッセージの入ったファイル。

ステップ 2. メッセージ・セットおよびフローをデプロイし、インスタンス・メッセージをブローカーで処理する。

  1. bar ファイル addev1 を作成します。
  2. メッセージ・セット MAPPING3_AUDIT_messages およびメッセージ・フロー addev1 を bar ファイルに追加します。
  3. bar ファイルをブローカーにデプロイします。
  4. インスタンス文書を入力キューに入れます。
ステップ 2 の結果: 出力メッセージは入力と同じになるはずである。データベース表の内容は、次のようになるはずである。
CONFIRMATION
RESID
-----------
       9052
       8214

RESERVATION
RESID       NAME                 PARTY       PAYMENT
----------- -------------------- ----------- ----------
       8214 ARCHIBALD                      2    1038.00
       2618 HENRY                          4     120.00
       9052 THAW                           3      85.00

PROVISIONAL
RESID
-----------
       2618

ステップ 3. いずれかのノードのデータ・ソースを、bar ファイルの構成を変更することによりオーバーライドする。

  1. データベース (たとえば、ALTDB) を作成し、以下の列を持つ表 CONFIRMATION を作成します。
    RESID                INTEGER
  2. データベース用の Windows ODBC データ・ソース名を作成した後、データベースを構成マネージャーに登録します (「ファイル」->「新規」->「RDB 定義ファイル」)。
ステップ 3 の結果: 表 CONFIRMATION を持つデータベース ALTDB。

ステップ 4. bar ファイルを作成し、構成を編集して、デプロイする。

  1. メッセージ・フロー addev1 を再度 bar ファイルに追加します。
  2. bar ファイル・エディターの「構成」タブを選択し、DataInsert アイコンを選択します。
  3. 「データ・ソース」フィールドを MAPDB から ALTDB に変更し、次いで bar ファイルを保管します。
  4. bar ファイルをブローカーにデプロイします。
  5. インスタンス文書を入力キューに入れます。
ステップ 4 の結果: 出力メッセージは入力と同じになるはずである。ALTDB データベースの表の内容は、次のようになるはずである。
CONFIRMATION
RESID
-----------
       8214

ステップ 1 から 4 の要約

  1. メッセージ・セット MAPPING3_AUDIT_messages が作成され、メッセージ addev1 が取り込まれる。 メッセージ・フロー addev1 がプロジェクト MAPPING3_AUDIT_flows に作成される。これにはマッピング・ファイル addev1_DataInsert.msgmap および addev1_DataUpdate.msgmap および addev1_DataDelete.msgmap が含まれる。データベース MAPDB が作成される。これには CONFIRMATION、RESERVATION、および PROVISIONAL というデータを取り込まれた表が含まれる。テスト用インスタンス・メッセージの入ったファイル。
  2. 出力メッセージは入力と同じになるはずである。 データベース表の内容は、次のようになるはずである。
    CONFIRMATION
    RESID
    -----------
           9052
           8214
    
    RESERVATION
    RESID       NAME                 PARTY       PAYMENT
    ----------- -------------------- ----------- ----------
           8214 ARCHIBALD                      2    1038.00
           2618 HENRY                          4     120.00
           9052 THAW                           3      85.00
    
    PROVISIONAL
    RESID
    -----------
           2618
  3. 表 CONFIRMATION を持つデータベース ALTDB。
  4. 出力メッセージは入力と同じになるはずである。ALTDB データベースでは、表の内容は、次のようになるはずである。
    CONFIRMATION
    RESID
    -----------
           8214
関連タスク
例: メッセージ・マッピングの作成、構成、およびデプロイ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ar25250_