SOAPAsyncRequest ノードでは、HTTP トランスポートまたは JMS トランスポートを使用できます。 このノードは、応答メッセージと元の要求を関連付けるために、固有 ID を使用して SOAPAsyncResponse ノードとペアとしてリンクされます。
SOAPAsyncRequest ノードは、Web サービス要求を送信しますが、このノードは関連した Web サービス応答の受信を待ちません。 この非同期機能により、アウトバウンド要求が応答を待機する際にブロックされないため、複数のアウトバウンド要求をほぼ並行して実行できます。 Web サービスの応答は SOAPAsyncResponse ノードによって受信されますが、それは別のメッセージ・フロー中のものでも構いません。
SOAPAsyncRequest ノードでは、HTTP トランスポートを使用するときに次の 2 つの方式で非同期要求がサポートされます。
- そのペアの SOAPAsyncResponse ノードに、WS-Addressing を使用して応答を送信する。 SOAPAsyncRequest ノードは、HTTP 202 の肯定応答が来るまで待機してから、メッセージ・フローの処理を続けます。肯定応答が受信されない場合、SOAPAsyncRequest ノードはブロックされます。 新規 HTTP 接続がバックエンド・サーバーによって作成されて、SOAPAsyncResponse ノードに応答します。 これがデフォルトの動作です。
- HTTP 非同期要求/応答を使用する。 SOAPAsyncRequest のプロパティー「HTTP 非同期要求/応答の使用」が選択されている場合、SOAPAsyncRequest ノードがそのペアの SOAPAsyncResponse ノードに HTTP ソケットを渡して、バックエンド・サーバーが同じソケットを使用して応答できるようになります。 このオプションが選択されているとき、WS-Addressing ヘッダーが送信されますが、バックエンド・サーバーがそれを認識する必要はありません。 WS-Addressing ヘッダーに mustUnderstand のマークは付けられず、replyTo ヘッダーは anonymous に設定されます。 そのため、ノードは WS-Addressing の代わりに非同期 HTTP ソケット処理を使用して HTTP 要求を行い、非同期応答を受信します。
SOAPAsyncRequest ノードで HTTP トランスポートを使用して非同期要求を出すときには、通常、HTTP 非同期要求/応答方式を選ぶのが適切です。 この振る舞いを使用するには、SOAPAsyncRequest ノード・プロパティー「HTTP 非同期要求/応答の使用」を必ず選択してください。
ただし、次のようなケースでは、
SOAPAsyncRequest ノードで WS-Addressing を代わりに使用して非同期要求を出すことができます。
- WS-Addressing を使用して応答メッセージの replyTo ヘッダーを明示的に設定する場合
- バックエンド・サーバーの待ち時間が長い場合、HTTP ソケットを長時間にわたって開いたままにしないように、HTTP 非同期要求/応答の代わりに WS-Addressing を使用することができます。
HTTP トランスポートの使用時に HTTP 非同期要求/応答の振る舞いの代わりに WS-Addressing を使用するときには、
SOAPAsyncRequest ノード・プロパティー
「HTTP 非同期要求/応答の使用」を必ずクリアしてください。 これが
SOAPAsyncRequest ノードのデフォルトの振る舞いです。