WS-ReliableMessaging を使用した Address Book サンプルの実行
ネットワーク障害やサーバー故障のために、Web サービスまたは Web クライアントへの SOAP 要求または応答の送達が失敗することがあります。
Web Services Reliable Messaging (WS-RM) は、2 つの SOAP ベースのシステムが信頼できる方法で相互にメッセージを送信できるようにするための仕様です。
WS-RM プロトコルは、正常に送達されなかったと判別したメッセージを再送信する方法を定義し、また宛先アプリケーションにメッセージが重複して送達されないようにします。
ネットワーク障害をシミュレーションするために TCP/IP チャネルを停止したり開始したりしながら、どのように WS-RM を使用して信頼できる方法で SOAP/HTTP メッセージを送達できるかを具体的に説明します。
こうしたネットワーク障害があっても、すべての SOAP/HTTP 要求および応答は正常に送達されます。
- ネットワーク障害をシミュレーションするために、『TCP/IP モニターのセットアップ』に説明されている方法で TCP/IP モニターをセットアップします。
- 『HTTP を使用するための Address Book サンプルのセットアッ』の手順を実行します。
- 以下の手順を実行すると、コンシューマー・フローとプロバイダー・フローが WS-RM を使用するように構成されていない場合に、ネットワーク障害が発生すると例外がスローされるということがわかります。
- 「ブローカー開発」ビューで、AddressBook プロジェクトを展開します。
- 「フロー・テスト」を展開します。
AddressBookTests.mbtestをダブルクリックして、テスト・クライアントでファイルを開きます。
- 最初の「エンキュー」を選択します。
「メッセージの送信」をクリックします。
- TCP/IP モニターに、プロバイダー・フローとコンシューマー・フローの間で送信された SOAP メッセージが表示されます。
インバウンドおよびアウトバウンドの SOAP メッセージの内容を調べます。
メッセージを読みやすくするには、「TCP/IP モニター」のメニューを使用して、形式を Byte から XML に変更します。
- 最初の「デキュー」を選択します。 「メッセージの取得」をクリックします。SOAPRequest ノードからの HTTP 応答と XML メッセージの両方が表示されます。
- TCP/IP モニターを停止します。
TCP/IP モニター・ビューを右クリックして、「プロパティー」を選択します。
作成した TCP/IP モニターを選択して、「停止」をクリックします。
- AddressBookTests.mbtest を開きます。
最初の「エンキュー」を選択します。
「メッセージの送信」をクリックします。
- TCP/IP モニターを再開します。
TCP/IP モニター・ビューを右クリックして、「プロパティー」を選択します。
停止した TCP/IP モニターを選択して、「開始」をクリックします。
- 要求は失敗しました。3 番目の「デキュー」を選択し、「メッセージの取得」をクリックして障害メッセージを表示します。
イベント・ログで詳細を確認します。
- 以下の手順を実行すると、コンシューマー・フローとプロバイダー・フローが WS-RM を使用するように構成されている場合に、ネットワーク障害が発生しても SOAP/HTTP メッセージが引き続き送達されるということがわかります。
- フローが WS-RM を使用する構成となるようにサンプルを拡張します。
フローをデフォルト・ポリシー・セットに関連付ける必要があります。
BAR ファイルの構成およびデプロイに説明されているステップを実行します。
- フローをデプロイすると、コンシューマー・フローにメッセージが送信されます。
- 「ブローカー開発」ビューで、AddressBook プロジェクトを展開します。
- 「フロー・テスト」を展開します。
AddressBookTests.mbtestをダブルクリックして、テスト・クライアントでファイルを開きます。
- 最初の「エンキュー」を選択します。
「メッセージの送信」をクリックします。
- TCP/IP モニターを確認します。
コンシューマー・フローとプロバイダー・フローの間で送信される WS-RM ワイヤー・プロトコル・メッセージが表示されます。
インバウンドおよびアウトバウンドの SOAP メッセージの内容を調べます。
メッセージを読みやすくするには、「TCP/IP モニター」のメニューを使用して、形式を Byte から XML に変更します。
- 最初の「デキュー」を選択します。 「メッセージの取得」をクリックします。SOAPRequest ノードからの HTTP 応答と XML メッセージの両方が表示されます。
- TCP/IP モニターを停止します。
TCP/IP モニター・ビューを右クリックして、「プロパティー」を選択します。
作成した TCP/IP モニターを選択して、「停止」をクリックします。
- AddressBookTests.mbtest を開きます。
最初の「エンキュー」を選択します。
「メッセージの送信」をクリックします。
- ここで、再度 TCP/IP モニターを開始します。
TCP/IP モニター・ビューを右クリックして、「プロパティー」を選択します。
停止した TCP/IP モニターを選択して、「開始」をクリックします。
- 要求が処理されました。TCP/IP モニターを確認します。
コンシューマー・フローとプロバイダー・フローの間で送信される WS-RM ワイヤー・プロトコル・メッセージが表示されます。
- 2 番目の「デキュー」を選択し、「メッセージの取得」をクリックしてメッセージを表示します。
- これで、WS-ReliableMessaging を使用するための Address Book サンプルの拡張が完了しました。
「Address Book サンプルの拡張」に戻る
サンプルのホームに戻る