レスポンダー応答条件は、メッセージ レスポンダーがどのメッセージを受け入れて処理するかを決定します。仮想アセット URL に送信されるさまざまなメッセージは、ここでの設定に基づいて特定のメッセージ レスポンダー ツール (それぞれ異なる操作に対応する) に振り分けられます。たとえば、1 つのメッセージ レスポンダー ツールは顧客登録メッセージに応答し、別のメッセージ レスポンダーは支払メッセージに応答し、さらに別のレスポンダーは、他のレスポンダーに一致しない場合に使用されるデフォルトの「キャッチ オール」として機能する場合があるでしょう。
CTP でレスポンダー応答条件を構成するには、次の操作を行います。
トランスポート応答条件を使用すると、このレスポンダーでメッセージを処理するかどうかを決定する HTTP ヘッダー、JMS メッセージ プロパティ、MQ メッセージ フィールドを指定できます。
トランスポート応答条件を設定するには、次の操作を行います。
リクエスト ボディ応答条件を使用すると、メッセージを処理するかどうかを判断する XPath を指定できます。
リクエスト ボディ応答条件を設定するには、次の操作を行います。
URL パス応答条件を使用すると、メッセージを処理するかどうかを判断する URL パスを指定できます。URL パス応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。
URL パス応答条件を設定するには、次の操作を行います。
たとえば、仮想アセットが http://myvirtserver:9080/MyAsset/MyPath
というパスにデプロイされ、 /segment1/segment2/**
というパスがレスポンダー応答条件で指定されていると仮定します。
以下の URL はこの応答条件に一致します。
以下の URL はこの応答条件に一致しません。
* がゼロ個以上のm時に一致し、** がゼロ個以上のディレクトリに一致する Ant スタイルのワイルドカードを使用できます。次のようにワイルドカードを使用します。
一致 | 一致しません |
---|---|
service/Repository | org/web/service/foo/bar/Entries |
一致 | 一致しません |
---|---|
org/parasoft/virtualize/tools/service org/parasoft/virtualize/stuff | org/parasoft/somethingelse |
一致 | 一致しません |
---|---|
org/parasoft/EM/Entries | org/parasoft/EM/foo/bar/Entries |
URL パラメーター応答条件を使用すると、メッセージを処理するかどうかを判断する URL パラメーターを指定できます。URL パラメーターは、繰り返し指定できます (同じパラメーターに異なる値を指定できます)。指定されたパラメーターに加え、その他のパラメーターを含むリクエストも一致します。指定されたパラメーターのいずれかを含まないメッセージは一致しません。URL パラメーター応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。
URL パラメーター応答条件を設定するには、次の操作を行います。
たとえば、仮想アセットが http://myvirtserver:9080/MyAsset/MyPath
というパスにデプロイされ、 次の URL パラメーターがレスポンダーに指定されていると仮定します。
パラメーター名 | 値 |
---|---|
param1 | value1 |
param2 | value2 |
以下の URL はこの応答条件に一致します。
以下の URL はこのレスポンダーに該当しません。
HTTP メソッド応答条件を使用すると、メッセージを処理するかどうかを判断する HTTP メソッドを指定できます。HTTP パス応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。
HTTP メソッド応答条件を設定するには、次の操作を行います。
たとえば、GET、POST、および PUT オプションをオンにすると、レスポンダーはメソッドが GET、POST、または PUT の HTTP リクエストに応答します。メソッドが CONNECT、DELETE、HEAD などの HTTP リクエストには応答しません。
上記のレスポンダー応答条件の処理の後、受信メッセージの値が (リテラルにまたは式を使用して) データ ソースの値と比較され、レスポンダーは一致するデータ行を使用してレスポンス メッセージを作成します。指定された受信メッセージ値と一致するデータ ソース行が見つからなかった場合、Virtualize は (デフォルトのフェイルオーバー設定を使用して) 検索を続行し、レスポンダー スイート内でレスポンダー応答条件が一致するレスポンダーを見つけようとします。
たとえば、下の図では、受信メッセージの loanAmount 値と ApprovalLists データ ソースの Amount 列の間に応答条件が設定されています。
受信リクエストごとに loanAmount 値と Amount 列の行が一致します。同じ行の他の列の値を使用してレスポンスがパラメータライズされます。
応答条件を設定する際、データ ソース列名を入力するか、ツールに関連付けられたデータ ソース (設定エリア上部の [データ ソース] 列で選択されている) の利用可能な行をリストから選択できることに注意してください。
次の図は、データ ソースの選択を示しています。
次の図は、データ ソースで利用可能な列を示しています。
データ ソース応答条件が有効な場合、Virtualize はデータ ソース応答条件エリアで指定された条件を使用して受信メッセージの値とデータ ソースの値を比較します。受信メッセージの値に一致するデータ ソース行がない場合、データ ソース応答条件の失敗とみなされます。
[データ ソース応答条件に一致しない場合は、一致するレスポンダーを継続して検索します] オプションがオンの場合 (デフォルトではオン)、レスポンダーのデータ ソース応答条件が失敗すると、レスポンダー スイート内で一致するレスポンダー応答条件の検索が続けられます。以下の場合にだけエラーがレポートされます。
[データ ソース応答条件に一致しない場合は、一致するレスポンダーを継続して検索します] オプションがオフの場合、レスポンダーのデータ ソース応答条件が失敗すると、ただちにエラーがレポートされ、一致レスポンダーの検索は中止されます。
このエリアでは、1 つまたはそれ以上の値を抽出するために受信メッセージに対して実行する 1 つまたはそれ以上の XPath を指定します。抽出された値は、対応するデータ ソース列の値と比較されます。
XPath フィールドに直接 XPath を入力するか、XPath ビルダーを使用して XPath を追加できます。XPath ビルダーについては「XPath の指定」で説明されています。
このエリアは、HTTP/HTTPS を使用してアクセスされるアセットに適用されます。リクエスト URL 内で検索する 1 つまたはそれ以上の URL パラメーターを指定します。パラメーター値は、対応するデータ ソース列の値と比較されます。
複数の列が応答条件に使用されている場合、各列の値はすべてデコードされているか、すべてエンコードされているかのどちらかでなければなりません。すべての値がエンコードされている場合、空白を表すためにプラス記号を使用する方法か、“%20”を使用する方法か、どちらか一方でエンコードされていなければなりません。両方を混在させることはできません。
データ ソース応答条件は、リクエストにフィールドが存在しないことを条件とすることもできます。詳細については、『Virtualize ユーザーズ ガイド』を参照してください。 |
このエリアは、HTTP/HTTPS を使用してアクセスされるアセットに適用されます。パス セグメント インデックスに基づいてデータ ソース値をマッピングできます。
たとえば、以下の状況があるとします。
http://myvirtserver:9080/MyAsset/MyPath というパスにデプロイされている
http://myvirtserver:9080/MyAsset/MyPath/[somedynamicvalue]/B/C というパターンがある
[somedynamicvalue]
セグメントの値を取得し、データ ソース列の値を比較するには、URL パス インデックスに 2 を指定します。インデックスの値はアセット デプロイメント パスのセグメントを含めてゼロからカウントします。
http://myvirtserver:9080/MyAsset/MyPath/A/[somedynamicvalue]/C
という URL の動的値を比較するには、パス インデックス値として3 を使用します。
複数の列が応答条件に使用されている場合、各列の値はすべてデコードされているか、すべてエンコードされているかのどちらかでなければなりません。すべての値がエンコードされている場合、空白を表すためにプラス記号を使用する方法か、“%20”を使用する方法か、どちらか一方でエンコードされていなければなりません。両方を混在させることはできません。