TCPIP Client Nodes サンプルの拡張
非同期サンプルで説明されているとおりに接続クライアントにデータをエコーバックするように構成されている TCPIPServerSimulation フローの代わりに、別個のスタンドアロン TCP/IP サーバーを組み入れるようにサンプルを拡張する方法をこの拡張で示します。
この拡張はまた、ローカル環境を使用して、一部の接続プロパティーを指定変更する方法も示します。
サンプル拡張の概要は次のとおりです。
- TCPIP_ASYNC_IN キュー上に置かれている入力メッセージを変更して、TCP/IP サーバーのホスト名とポートに関する情報を格納することができます。
- TCPIPAsyncOut フロー内の JavaCompute ノードは、その情報をローカル環境にコピーします。
- TCPIPClientOutput ノードが、「プロパティー」ビューの「要求」タブ上で構成されて、ローカル環境からの特定の接続詳細に対する指定変更が受け入れ可能になります。
ポートまたはホスト名 (またはこの両方) の指定変更がローカル環境内に存在します。そのため TCPIPClientOutput ノードは、ローカル環境内の詳細を使用して接続をシークします。
- したがって、TCPIPAsyncOut メッセージ・フローをまったく変更しないで、メッセージを TCP/IP サーバーに動的にルーティングすることができます。
- TCPIPClientInput ノードで TCP/IP サーバーから必ず応答を受信できるように、TCPIPAsyncIn メッセージ・フロー内のその TCPIPClientInput ノードで新規の接続詳細を設定する必要もあります。
- サンプル入力メッセージおよび .mbtest ファイルがこのサンプルに付属しています。そこでは、TCP/IP サーバーは localhost:7778 で listen すると想定されています。
次のようにして、サンプル拡張を実行します。
- 以下のオプションのいずれかを使用して、TCP/IP サーバーと通信するようにメッセージ・フローを変更します。
- TCP/IP サーバーが localhost:7778 で listen する場合、TCPIPAsyncIn メッセージ・フロー内の TCPIPClientInput ノードの「接続の詳細」プロパティーを localhost:7778 に変更します。
メッセージ・フローを保存します。
- TCP/IP サーバーが localhost:7778 で listen しない場合、以下のステップを実行します。
- TCPIPClientNodesSampleFlowProject で、AsyncExtendMessage.xml ファイルをオープンします。
- AsyncExtendMessage.xml を変更して、ポートまたはホスト名 (またはこの両方) を localhost:7778 から、TCP/IP サーバーが listen するポートに変更します。
ファイルを保存します。
- TCPIPAsyncExtendTest.mbtest をオープンします。
「エンキュー」をクリックし、「ソースのインポート」をクリックし、AsyncExtendMessage.xml をインポートします。
このテスト・ファイルを保存します。
- TCPIPAsyncIn メッセージ・フロー内の TCPIPClientInput ノードの「接続の詳細」プロパティーを、テスト・メッセージ内のプロパティーに一致するように変更します。
メッセージ・フローを保存します。
- TCPIPClientNodesSampleArchive.bar BAR ファイル内に、同期ではなく、非同期のメッセージ・フローが入っていることを確認します。上記のステップに示されているとおりにフローを変更し終わったら、BAR ファイルを再作成して保存します。
- WebSphere Message Broker Toolkit で、ブローカー・アーカイブ・エディターを使って TCPIPClientNodesSampleArchive.bar を選択し、開きます。
「準備」タブを選択し、「ブローカー・アーカイブのビルド」をクリックします。
BAR ファイルを保存します。
- BAR ファイルを TCPIPClientNodesSampleExecutionGroup 内にデプロイします。
- TCPIPAsyncExtendTest.mbtest をオープンし、「エンキュー」をクリックし、「メッセージの送信」をクリックします。
以下のイベントが発生します。
- 変更後のメッセージが TCPIPAsyncIn message メッセージ・フローに送信されます。
- JavaCompute ノードは、更新後のホスト名とポートをローカル環境 ($LocalEnvironment/Destination/TCPIP/Output/) にコピーします。
- TCPIPClientOutput ノードは、ローカル環境内で指定変更された「接続の詳細」を使用してデータを送信します。
- TCP/IP サーバーは、そのデータを取り込んで、同じポート上でエコーバックします。
- このデータは、TCPIPAsyncIn メッセージ・フロー内の TCPIPClientInput ノードによって受信されて、そこでそのデータは、非同期サンプルでのデータの処理と同じやり方で処理されます。
- 「デキュー」をクリックしてから、「メッセージの取得」をクリックします。
- 次のようにして、更新後のメッセージが WebSphere MQ を介して正常に返送されたかどうかを調べます。
- XML 構造ビューを使って、「詳細プロパティー」パネルに応答メッセージを表示します。
- そのメッセージを、エンキュー・イベントを介して事前に送信したメッセージと比較します。
TCP/IP サーバーがメッセージ本体を変更したのでない限り、2 つのメッセージは同一になります。
上記のステップがすべて正常に完了したら、サンプルは完了です。
3 つのメッセージ・フロー内のノードを調べて、どのように結果が生じたかを確認します。
「基本」タブ上の「接続の詳細」プロパティーは、以下の画面取りに似たものになります。
サンプルのホームに戻る