Video Rental サンプルの実行

始める前に、Video Rental サンプルがインポートおよびデプロイされていることが必要です。 サンプルをインポートしたとき、.msgflow ファイルに関連する警告がいくつか出される場合があります。 これらはデータベースに関連するものであり、サンプルの実行には影響しません。

このトピックでは、CWF、XML、および TDS 入力メッセージを Video メッセージ・フローに入れる方法を説明します。 さらに、サンプルが動作して適切な結果を受け取ったことをチェックする方法についても説明します。

サンプルの実行時に問題を検出した場合は、 『問題の診断』を参照してください。

サンプルの実行

サンプルを実行するには、入力キューにメッセージを入れ (エンキュー・ファイルの「ポート」フィールドに値 2414 が入力されていることを確認する)、出力キューからメッセージを取得することが必要です。 次の表に示されているように、対応する入力キューにいずれかのメッセージを入れて開始します。 サンプルが正しくセットアップされていれば、応答メッセージが VIDEO_OUT キューに入れられます。 その後、他のメッセージの処理を繰り返すことができます。

ファイル 入力キュー
videomsgcwf.enqueue VIDEO_CWF_IN
videomsgxml.enqueue VIDEO_XML_IN
videomsgtds.enqueue VIDEO_TDS_IN

結果を理解する

メッセージ・フローにメッセージを入れると、VIDEO_OUT キューにメッセージを受け取ることになります。 そのメッセージは、次のように変換されています。

オプション: ID フィールドの値の変更

3 つの入力メッセージの ID フィールドには、顧客の指定した ID の種類を示す 1 文字が含まれています。

メッセージの IdGroup フィールドは、そのパスポート、運転免許証、あるいはクレジット・カードの番号を示すものです。 メッセージがこのように編成される理由については、『メッセージ・モデルの構造』を 参照してください。

XML および TDS メッセージでは、ID タイプとしてパスポートが使用されています。 CWF メッセージの場合の ID はクレジット・カードです。 使用している ID のタイプを運転免許証に変更した場合の影響を確認するには、下の表に示されている変更を加えてから、 通常どおりメッセージを対応する入力キューに入れてください。 ワークベンチの中でファイルを編集するには、「リソース・ナビゲーター」でそのファイルをダブルクリックしてください。 エディター・ビューでそのファイルが表示されます。 変更を加える際には、次の点に注意してください。

ファイル名 変更前の値 新しい値
videomsgxml.enqueue <ID>P</ID> <ID>D</ID>
<PassportNo>J123456TT</PassportNo> <DrivingLicenseNo>xxxxxx</DrivingLicenseNo>
videomsgtds.enqueue &ID:P&PassportNo:J123456TT &ID:D&DrivingLicenseNo:xxxxxx
videomsgcwf.enqueue C (SalisburyJ123456TT の間) D

 

オプション: メッセージ・フローのトレース

未解決の選択項目を CWF パーサーがどう処理するかを調べるには、メッセージ・フローをトレースすることができます。 このサンプルの未解決の選択項目の処理については、このトピックの最後にある『関連情報』セクションで、メッセージ・セットの調査のリンクを参照してください。

未解決の選択項目の処理について調べるには、

  1. Extract Fields ノードと VIDEO_OUT ノードの間に Trace ノードを挿入します。Pattern プロパティーは ${Root} に設定します。
  2. videocwfmsg.enqueue ファイルをメッセージ・フローに入れ、メッセージ・フローをトレースします。 トレースには、該当する選択項目フィールドに ID 番号が含まれているメッセージ・ツリーが示されます。 トレースの一部を表示することにより、 未解決の選択項目の処理について確認することもできます。

    トレースの以下の部分は未解決の選択ハンドリングと関係があります。

    (0x0100001B):MRM = (
      (0x01000013):Name = (
        (0x0300000B):LastName = 'Bloggs '
        (0x0300000B):Title = 'Mr '
        (0x0300000B):FirstName = 'Fred '
    
      )
      (0x01000013)http://www.ibm.com/AddressDetails:Address = (
        (0x0300000B):HouseNo = 12
        (0x0300000B):Street = 'Willow Avenue '
        (0x0300000B):Town = 'Salisbury '
      )
      (0x0300000B):ID = 'C'
      (0x0300000B):CreditCardNo = 'J123456TT '
      (0x01000013)http://www.ibm.com/BorrowedDetails:Borrowed = (
        (0x0300000B):VideoTitle = 'Fast Cars '
        (0x0300000B):DueDate = TIMESTAMP '2003-05-23 00:00:00'
        (0x0300000B):Cost = 3.00
      )
      (0x01000013)http://www.ibm.com/BorrowedDetails:Borrowed = (
        (0x0300000B):VideoTitle = 'Cut To The Chase '
        (0x0300000B):DueDate = TIMESTAMP '2003-05-23 00:00:00'
        (0x0300000B):Cost = 3.75
      )
      (0x0300000B):Magazine = TRUE

    トレースの中での Title、FirstName、および LastName のフィールドの順序は、CWF 入力メッセージの中での順序と同じでないことに注意してください。 入力メッセージの中では、Title、FirstName、および LastName の順序になっていますが、メッセージが解析される時点でパーサーは LastName 属性を、 論理ツリーの中で NameType の子エレメント (Title と FirstName) を表す名前と値のペアより上に入れます。
  3. videocwfmsg.enqueue ファイルの中の ID フィールドの値を、C から P または D に変更します。
  4. 変更後のメッセージをメッセージ・フローに入れて、トレースが違う結果になることを確認してください。

メインページのアイコン   サンプルのホームに戻る