Multiple Responses Generator は、階層型データ シナリオ、1 対多の非同期メッセージングなどを簡単に処理できる強力なツールです。
このセクションの内容
XML の断片 (input
)、XML 要素名 (elementName
)、バックエンド アセット URL (backendURL
) を指定すると、Multiple Responses Generator は input
内の elementName
を検索し、各オカレンスを個別に backendURL
に送信します。バックエンド アセットは、elementName
をルート要素とするメッセージに応答するよう設定された仮想アセットであり、Multiple Responses Generator にレスポンスを返信します。Multiple Responses Generator はレスポンスを受信すると、1 つの XML に集約してレスポンスで使用できるようにします。
このセットアップ手順を実行すると、メッセージ レスポンダーに結合可能なツールのリストに Multiple Responses Generator ツールが表示されるようになります。
Multiple Responses Generator には主に 2 つのグループの設定オプションがあります。必須セクションのオプションは、Multiple Responses Generator を使うのに必須のオプションであり、任意セクションのオプションは、より高度なシナリオで複雑な制御を行うためのものです。
以下のオプションは、Multiple Responses Generator の動作に必須です。
Name of element to send to backend asset | 名前空間 (あれば) を含む XML 要素名です。受信 XML 内にある、ここで指定された名前と一致する要素のオカレンスは、分割されて [Backend Asset URL] で指定された仮想アセットに送信されます。さらに、リクエスト内に複数のリストがある場合、ツールはすべてのリスト要素の組み合わせを作成します。単一のリストだけを使用したい場合、他のリストを除外します。 |
---|---|
Backend Asset Path | バックエンドの仮想アセットが待機する HTTP パスを指定します。完全な URL が指定されても、パス セグメントだけが使用されます。仮想アセットには、[Name of element to send to backend asset] 設定で指定された要素をルート要素とする XML メッセージを処理するレスポンダーがなければなりません。 |
Elements excluded from splitting process | 名前空間 (あれば) を含む XML 要素名のカンマ区切りのリストです。デフォルトでは、Name of element to send to backend asset オプションで指定された XML に同じ名前を持つ兄弟要素 (リスト) が含まれている場合、Multiple Responses Generator は兄弟要素の繰り返しごとに別個のリクエストを作成します。 |
---|---|
Response Type | [Backend Asset URL] で指定された仮想アセットが XML を返す場合、このフィールドは空のままにします。[Backend Asset URL] で指定された仮想アセットが XML 以外のペイロードを返す場合、このフィールドに Other を入力します。 |
Output XML Root Tag Name | レスポンス XML 出力のルート タグ名です。デフォルトは responses です。 |
Output XML | Output XML Root Tag Name の子要素の名前です。デフォルトは response です。 |
SOAPAction List | このカンマ区切り リストに指定された SOAP アクションごとに、Name of element to send to backend asset で指定された要素はその SOAP アクションを使用して Backend Asset URL に送信されます。このオプションは、要素に複数のレスポンスが必要な場合に便利です。 |
Use thread pool | このオプションを有効にすると (true を設定すると)、バックエンドの仮想アセットに複数のリクエストが並行して送信されます。デフォルトは false です。 |
---|---|
Thread pool type | バックエンドの仮想アセットに同時並行リクエストを送信するスレッドに使用するプールのタイプを指定します。選択肢は
デフォルト値は |
Number of threads | 特定の時点で実行可能な仮想アセットの最大同時実行リクエスト数を指定します。このオプションは、[Thread pool type] オプションに FIXED が設定されている場合に適用されます。デフォルト値は 100 です。 |
Multiple Responses Generator は、Parasoft Virtualize メッセージ レスポンダーの任意の XML 出力に連結できます。これには、任意の XML ベースのレスポンダーの [受信リクエスト] > [ペイロード] や、非 XMLベースのレスポンダーの [受信リクエスト] > [XML に変換されたペイロード] が含まれます。Multiple Responses Generator の基本的な使用方法は次のとおりです。より詳細な説明は「Example Scenarios」にあります。
Multiple Responses Generator によって処理できるシナリオは多数ありますが、このセクションでは、最もよく使用されるサンプルをいくつか紹介します。
Multiple Responses Generator で処理される最も一般的なシナリオは、要素数が動的に変化するリストを含むメッセージです。例:
<root> <items> <item> <name>Name1</name> <id>1</id> </item> <item> <name>Name2</name> <id>2</id> </item> |
このリクエストには N 個のサブリスト (N >= 1) が含まれます。次のようなレスポンスが期待されています。
<root> <itemResponses> <itemResponse> <balance>10</balance> </itemResponse> <itemResponse> <balance>20</balance> </itemResponse> |
「Usage」で説明したプロセスに従うと、上記のリクエストおよびレスポンスを持つアセットをセット アップできます。
Example1-Frontend
と入力し、[次へ] をクリックします。 item
と入力します。http://localhost:9080/Example1-Backend
と入力します。itemResponses
] を入力します。Multiple Responses Generator が送信するメッセージを処理するバックエンド アセットを作成します。必ず Multiple Responses Generator の [Backend Asset URL] で指定した URL にバックエンド アセットをデプロイします。
サンプルを簡単にするために、バックエンドでは固定レスポンスを使用します。Marketplace からダウンロードしたアーカイブに含まれている Example1-Backend.pva では、動的レスポンスを使用しています。 |
Example1-Backend
と入力し、[次へ] をクリックします。 次の XML を入力します。
<itemResponse> <balance>10</balance> </itemResponse> |
/*
に変更します。集約されたレスポンスをレスポンス内で使用するには、[Literal Message Responder] をダブルクリックし、テキスト フィールドに次のように入力します。
<root> ${responses} </root> |
次の図は、このシナリオ全体を表しています。