Video Rental サンプルの実行

開始する前に、Video Rental サンプルを事前にインポートしてデプロイしておく必要があります。 このサンプルをインポートすると、.msgflow ファイルに関するいくつかの警告が出ることがあります。 そのような警告は、データベースに関連するものであり、サンプルの実行には影響しません。 また、妥当性検査に関する警告が Toolkit に示されることもあります。この警告は、メッセージ・セット関連のものであり、サンプルの実行には影響しません。

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

サンプルの実行時に問題を検出した場合は、 WebSphere Message Broker 資料の『サンプル実行時の問題の解決』を参照してください。

サンプルの実行

このサンプルを実行するには、入力キュー上にメッセージを置き、出力キューからメッセージを取得する必要があります。 次の表に示されているように、対応する入力キューにいずれかのメッセージを入れて開始します。サンプルが正しくセットアップされていれば、応答メッセージが VIDEO_OUT キューに入れられます。 その後、他のメッセージの処理を繰り返すことができます。

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

メッセージを関連するキューに書き込むには、次のようにします。

  1. 「ブローカー開発」ビューで、「Video Message Flows」プロジェクトを展開し、「フロー・テスト」ディレクトリーの .mbtest ファイルのいずれかをダブルクリックして、テスト・クライアントでそれを開きます。
  2. テスト・クライアントで、「エンキュー」をクリックします。
  3. 「メッセージの送信」をクリックして、メッセージを入力キューに書き込みます。

VIDEO_OUT キューからメッセージを取得するには、次のようにします。

  1. テスト・クライアントで「デキュー」をクリックします。
  2. 「メッセージの取得」をクリックして、 VIDEO_OUT キューからメッセージを読み取ります。

結果を理解する

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

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

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

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

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

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

 

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

未解決の選択項目を CWF パーサーがどう処理するかを調べるには、メッセージ・フローをトレースすることができます。 このサンプルにおける未解決選択処理の詳細については、『Video Rental メッセージ・セットについて』を 参照してください。

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

  1. Extract Fields ノードと VIDEO_OUT ノードの間に Trace ノードを挿入します。Pattern プロパティーは ${Root} に設定します。
  2. videocwfmsg.mbtest ファイルをメッセージ・フローに入れ、メッセージ・フローをトレースします。 トレースには、該当する選択項目フィールドに 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.mbtest ファイルの中の ID フィールドの値を、C から P または D に変更します。
  4. 変更後のメッセージをメッセージ・フローに入れて、トレースが違う結果になることを確認してください。

サンプルのホームに戻る