レスポンダー応答条件は、メッセージ レスポンダーがどのメッセージを受け入れて処理するかを決定します。仮想アセット URL に送信されるさまざまなメッセージは、ここでの設定に基づいて特定のメッセージ レスポンダー ツール (それぞれ異なる操作に対応する) に振り分けられます。たとえば、1 つのメッセージ レスポンダー ツールは顧客登録メッセージに応答し、別のメッセージ レスポンダーは支払メッセージに応答し、さらに別のレスポンダーは、他のレスポンダーに一致しない場合に使用されるデフォルトの「キャッチ オール」として機能する場合があるでしょう。

受信リクエストと適切なレスポンスを関連付ける際に、どのようにレスポンダー応答条件が使用されるかの詳細については「メッセージ応答プロセスの理解」を参照してください。

応答条件の構成

CTP でレスポンダー応答条件を構成するには、次の操作を行います。

  1. 左側のペインで、応答条件を設定するレスポンダーを選択します。
  2. 応答条件エリアのコントロールを使用して、適用する応答条件を指定します。1 つのタイプの応答条件を設定することも、複数のタイプの応答条件を設定することも、応答条件を設定しないこともできます。応答条件が設定されていない場合、メッセージのすべてが処理されます。以下は応答条件タイプの説明です。

トランスポート応答条件

トランスポート応答条件を使用すると、このレスポンダーでメッセージを処理するかどうかを決定する HTTP ヘッダー、JMS メッセージ プロパティ、MQ メッセージ フィールドを指定できます。

トランスポート応答条件を設定するには、次の操作を行います。

  1. [トランスポート ヘッダー] チェックボックスをオンにします。
  2. [追加] ボタンをクリックします。新しいエントリ行が表示されます。
  3. 指定するトランスポート応答条件の [名前] および [] に入力します。(設定された値にかかわらず) このヘッダー名を含むすべてのメッセージを処理するには、[*] を指定します。
     

リクエスト ボディ応答条件

リクエスト ボディ応答条件を使用すると、メッセージを処理するかどうかを判断する XPath を指定できます。

リクエスト ボディ応答条件を設定するには、次の操作を行います。

  1. [リクエスト ボディ] チェックボックスをオンにします。
  2. [追加] ボタンをクリックします。新しいエントリ行が表示され、XPath ビルダーが開きます。
  3. 条件とするリクエスト ボディを指す XPath 式を指定します。XPath 式は、XPath ビルダー (「XPath の指定」を参照) を使用して指定するか、W3C の XPath 1.0 標準を使用して [XPath] テキスト フィールドに直接入力できます。
     
  4. ステップ 2 および 3 を繰り返し、条件とするすべての XPath を指定します。 

URL パス応答条件

URL パス応答条件を使用すると、メッセージを処理するかどうかを判断する URL パスを指定できます。URL パス応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。

URL パス応答条件を設定するには、次の操作を行います。

  1. [URL パス] チェックボックスをオンにします。
  2. 応答条件として使用するパスを指定します。

たとえば、仮想アセットが http://myvirtserver:9080/MyAsset/MyPath というパスにデプロイされ、 /segment1/segment2/** というパスがレスポンダー応答条件で指定されていると仮定します。

以下の URL はこの応答条件に一致します。

  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2
  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2/
  • http://myvirtserver:9080/MyAsset/MyPath/segment1/segment2/segment3?param1=value1&param2=value2

以下の URL はこの応答条件に一致しません。

  • http://myvirtserver:9080/MyAsset/MyPath/segment1/
  • http://myvirtserver:9080/MyAsset/MyPath/segment3/segment1/segment2

* がゼロ個以上のm時に一致し、** がゼロ個以上のディレクトリに一致する Ant スタイルのワイルドカードを使用できます。次のようにワイルドカードを使用します。

  • /**/Abcは /abc または/this/that/abcに一致します。
  • /Abc/** は /abc または /abc/this/that/theotherに一致します。
  • /Ab** は /abc/d には一致しません (/ab*と単一のアスタリスクを使用した場合と同じように解釈されます) が、 /absolutely に一致します。
  • /**bcは /0/abc には一致しません (/*bc と単一のアスタリスクを使用した場合と同じように解釈されます) が、/abc に一致します。

例 1: **/service/*

一致一致しません

service/Repository
org/web/service/Entries
org/something/else/tools/stiff/service/Entries

org/web/service/foo/bar/Entries 

例 2:org/parasoft/virtualize/**

一致一致しません
org/parasoft/virtualize/tools/service

org/parasoft/virtualize/stuff

 org/parasoft/somethingelse

例 3:org/parasoft/**/EM/*

一致一致しません

org/parasoft/EM/Entries
org/parasoft/virtualize/soatest/tools/EM/Entries

 org/parasoft/EM/foo/bar/Entries

URL パラメーター応答条件

URL パラメーター応答条件を使用すると、メッセージを処理するかどうかを判断する URL パラメーターを指定できます。URL パラメーターは、繰り返し指定できます (同じパラメーターに異なる値を指定できます)。指定されたパラメーターに加え、その他のパラメーターを含むリクエストも一致します。指定されたパラメーターのいずれかを含まないメッセージは一致しません。URL パラメーター応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。

URL パラメーター応答条件を設定するには、次の操作を行います。

  1. [URL パラメーター] チェックボックスをオンにします。
  2. [追加] ボタンをクリックします。新しいエントリ行が表示されます。
  3. レスポンスの応答条件とするパラメーターの名前と値を入力します。(設定された値にかかわらず) このパラメーター名を含むすべてのメッセージを処理するには、[*] を指定します。
     
  4. ステップ 2 および 3 を繰り返し、条件とするすべてのパラメーター値を指定します。


たとえば、仮想アセットが http://myvirtserver:9080/MyAsset/MyPath というパスにデプロイされ、 次の URL パラメーターがレスポンダーに指定されていると仮定します。

パラメーター名

param1 

value1
param2value2


以下の URL はこの応答条件に一致します。

  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=value2
  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=value2&m3=value3
  • http://myvirtserver:9080/MyAsset/MyPath?param2=value2&m1=value1&m3=value3

以下の URL はこのレスポンダーに該当しません。

  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m2=someothervalue&m3=value3
  • http://myvirtserver:9080/MyAsset/MyPath?param1=value1&m3=value3

HTTP メソッド応答条件

HTTP メソッド応答条件を使用すると、メッセージを処理するかどうかを判断する HTTP メソッドを指定できます。HTTP パス応答条件は、HTTP/HTTPS を使用してアクセスされる仮想アセットに適用されます。

HTTP メソッド応答条件を設定するには、次の操作を行います。

  1. [HTTP メソッド] チェックボックスをオンにします。
  2. 応答条件として使用する 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 の指定」で説明されています。

URL パラメーター

このエリアは、HTTP/HTTPS を使用してアクセスされるアセットに適用されます。リクエスト URL 内で検索する 1 つまたはそれ以上の URL パラメーターを指定します。パラメーター値は、対応するデータ ソース列の値と比較されます。

複数の列が応答条件に使用されている場合、各列の値はすべてデコードされているか、すべてエンコードされているかのどちらかでなければなりません。すべての値がエンコードされている場合、空白を表すためにプラス記号を使用する方法か、“%20”を使用する方法か、どちらか一方でエンコードされていなければなりません。両方を混在させることはできません。

存在しない/空のフィールドおよびパラメーターとの一致

データ ソース応答条件は、リクエストにフィールドが存在しないことを条件とすることもできます。詳細については、『Virtualize ユーザーズ ガイド』を参照してください。

URL パス

このエリアは、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”を使用する方法か、どちらか一方でエンコードされていなければなりません。両方を混在させることはできません。

  • No labels