ファイルを使用する Message Routing サンプルの実行

このセクションで使用されるすべてのテスト・メッセージは、Message routing sample message flows メッセージ・ブローカー・プロジェクトの Test messages ディレクトリーに保管されています。

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

サンプルの実行

ファイル全体を使用したメッセージの経路指定

メッセージ・フローはメッセージを、その内容に基づき、20 の出力キューの内の 1 つに経路指定できます (ROUTING.OUT の後に 1 から 19 の数字が付いたキューと、ROUTING.DEFAULT というキュー)。サンプルのこの部分を実行するには、次のようにします。

  1. 「ブローカー開発」ビューで、Message routing sample message flows プロジェクトを展開します。 「テスト・メッセージ」の下の File_Whole_file_message1.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  2. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.WHOLE.FILE.IN1 キューに送ります。メッセージ・フローが、メッセージを ROUTING.OUT1 キューに経路指定します。
  3. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、メッセージを ROUTING.OUT1 キューから読み取ります。
  4. テスト・メッセージ」の下の File_Whole_file_message2.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  5. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.WHOLE.FILE.IN1 に送ります。メッセージ・フローが、メッセージを ROUTING.OUT18 および ROUTING.OUT19 キューに経路指定します。
  6. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT18 キューから読み取ります。
  7. もう 1 回「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT19 キューから読み取ります。

ここまでのステップがすべて正常に終了したら、サンプルの最初の部分は完了です。 経路指定がどのようにプログラムされているかを確認するには、メッセージ・フローの ESQL を調べて、 Routing_using_whole_file_Compute を確認してください。

ファイルから取り出したレコードを使用したメッセージの経路指定

メッセージ・フローはメッセージを、その内容に基づき、20 の出力キューの内の 1 つに経路指定できます (ROUTING.OUT の後に 1 から 19 の数字が付いたキューと、ROUTING.DEFAULT というキュー)。サンプルのこの部分を実行するには、次のようにします。

  1. 「ブローカー開発」ビューで、Message routing sample message flows プロジェクトを展開します。 「テスト・メッセージ」の下の File_Records_file_message1.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  2. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.RECORDS.FILE.IN1 キューに送ります。メッセージ・フローが、メッセージを ROUTING.OUT1 キューに経路指定します。
  3. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、メッセージを ROUTING.OUT1 キューから読み取ります。
  4. テスト・メッセージ」の下の File_Records_file_message2.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  5. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.RECORDS.FILE.IN1 に送ります。メッセージ・フローが、メッセージを ROUTING.OUT18 および ROUTING.OUT19 キューに経路指定します。
  6. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT18 キューから読み取ります。
  7. もう 1 回「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT19 キューから読み取ります。

ここまでのステップがすべて正常に終了したら、サンプルの 2 番目の部分は完了です。

ファイルのメモリー内キャッシュを使用したメッセージの経路指定

サンプルのこの部分では、Routing_using_file_and_memory_cache メッセージ・フローが使用されます。メッセージ・フローには、以下の 2 つの入力キューが含まれます。

  1. ROUTING.FILE.MEMORY.IN1
  2. ROUTING.FILE.REFRESH.IN1

サンプルのこの部分を実行するには、次のようにします。

  1. 「ブローカー開発」ビューで、Message routing sample message flows プロジェクトを展開します。 「テスト・メッセージ」の下の File_Memory_cache_message1.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  2. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.FILE.MEMORY.IN1 キューに送ります。メッセージ・フローが、メッセージを ROUTING.OUT1 キューに経路指定します。
  3. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、メッセージを ROUTING.OUT1 キューから読み取ります。
  4. テスト・メッセージ」の下の File_Memory_cache_message2.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  5. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.FILE.MEMORY.IN1 に送ります。メッセージ・フローが、メッセージを ROUTING.OUT18 および ROUTING.OUT19 キューに経路指定します。
  6. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT18 キューから読み取ります。
  7. もう 1 回「デキュー」に続いて「メッセージの取得」をクリックして、経路指定されたメッセージを ROUTING.OUT19 キューから読み取ります。
  8. ここまで、フローの動作は先のフローとまったく同じですが、このフローでは、ファイルから取り出してキャッシュに入れられた情報を使用しています。 キャッシュを使用することの影響をテストするため、ファイルに変更を加えます。これは、メモリー内のキャッシュをどのようにリフレッシュできるかを示すためです。ファイルを変更するには次のようにします。
    1. MQSI_FILENODES_ROOT_DIRECTORY c:¥MQSIFileRead に移動します。
    2. fileRead.csv ファイルを開きます。
    3. KA,Braithwaite,MB8QMGR,ROUTING.OUT18,MB8QMGR,ROUTING.OUT19 で、行を以下のように変更します。 KA,Braithwaite,MB8QMGR,ROUTING.OUT17,MB8QMGR,ROUTING.OUT19
    4. ファイルを保存します。
  9. テスト・メッセージ」の下の File_Memory_cache_message2.mbtest をダブルクリックして、テスト・クライアントでこのファイルを開きます。
  10. テスト・クライアントで「エンキュー」に続いて「メッセージの送信」をクリックして、メッセージを ROUTING.FILE.MEMORY.IN1 キューに送ります。メッセージ・フローが、メッセージを ROUTING.OUT18 および ROUTING.OUT19 キューに経路指定します。
  11. テスト・クライアントで「デキュー」に続いて「メッセージの取得」をクリックして、メッセージを ROUTING.OUT18 キューから読み取ります。2 番目のデキューについても、これを繰り返します。 ファイルが再び読み取られていないため、メッセージは新しいキュー名に経路指定されません。
  12. フローでファイルを再び読み取るには、「テスト・メッセージ」の下の File_Refresh_cache_message1.mbtest を開き、「エンキュー」に続いて「メッセージの送信」をクリックして、ROUTING.FILE.REFRESH.IN1 キューにメッセージを書き込みます。
  13. File_Memory_cache_message2.mbtest をダブルクリックしてテスト・クライアントでこれを開き、「エンキュー」に続いて「メッセージの送信」をクリックして、ROUTING.FILE.MEMORY.IN1 キューにメッセージを書き込みます。
  14. テスト・クライアントにおいて、最初の「デキュー」をクリックし、キュー名を ROUTING.OUT17 に変更し、「メッセージを取得」をクリックして、経路指定されたメッセージを ROUTING.OUT17 キューから読み取ります。

ファイルの queue_name を使用可能な他のいずれかのキュー名に変更することで、ステップ 9 から 14 までを繰り返すことができます。 File_Refresh_cache_message1 メッセージを使用する代わりにメッセージ・フローを停止および再始動することもできます。この場合も、キャッシュされたデータベース表がリフレッシュされます。

ここまでのステップがすべて正常に終了したら、サンプルの 2 番目の部分は完了です。 ルーティングがどうプログラムされているかを確認するには、メッセージ・フロー中の ESQL を見てください。
Routing_using_file_and_memory_cache_Compute.

結果を理解する

Message Routing サンプルは、出力を変更せずに、入力テスト・メッセージをさまざまな出力キューに経路指定します。 出力メッセージは、入力テスト・メッセージと同じです。 4 つの部分で挙げたステップに、メッセージの経路指定先の詳細が記載されています。メッセージが正しいキューに経路指定されることを確認するには、WebSphere MQ Explorer を使用するか、テスト・クライアントのデキューを使用できます。

サンプルのホームに戻る