Virtualize が受信する着信メッセージは、適切なレスポンス メッセージにメッセージをルーティングする「応答条件ロジック」に委ねられます。着信メッセージをレスポンス メッセージにひも付けるための多層的なアプローチは、実アセットと同じ振る舞いをする動的で現実的な仮想アセットの作成に、柔軟性と力強さを提供します。
着信メッセージが Virtualize に受信されると、以下の処理が行われます。
- 仮想アセットの選択: HTTP パス、 JMS/MQ キューの名前、または各仮想アセットのコンフィギュレーションで設定されたその他の拡張/カスタム標準に基づいて、メッセージに応答する仮想アセットが選択されます。仮想アセットは .pva に対応するので、このステップではどの .pva ファイルをメッセージの応答に使用するかを効果的に決定します。メッセージに応答するための仮想アセットが見つからない場合は、リクエスターにエラー メッセージが返されます。2 つの仮想アセットが同じ HTTP パスにデプロイされている場合、 Virtualize は応答条件に一致するレスポンダーを選択します。
- HTTP と HTTPS では、パスが定義済み接頭辞に対して照合される。
- JMS と MQ では、メッセージは常にキューから取得される。
- カスタム トランスポートでは、リスナー設定がユーザーのコードに送信される。
- 着信リクエストに仮想アセットの応答条件が一致しない場合、エラー メッセージが返される。
- レスポンダーの選択: レスポンダーは、仮想アセット (.pva) ファイルのレスポンダー スイートの中から選ばれます。レスポンダーは仮想アセット内で、「深さ優先探索パターン」で順番に評価されます。レスポンダー応答条件が着信メッセージと一致すると (詳細については 「[レスポンダー応答条件] タブ」を参照)、そのレスポンダーはメッセージの応答に使用され、応答条件は次のステップへ移動します。
- レスポンダーは順番にチェックされる (上から下へ)。
- レスポンダー応答条件は、レスポンダーを使用するかどうかを決定するために使用される。
- レスポンダー応答条件が着信メッセージに一致しない場合、エラー メッセージが返される。
- 応答条件を設定していないレスポンダーは、常に応答条件が一致するので、「キャッチ オール」または「デフォルト」レスポンダーとして使用される。
- 応答: 次のいずれかが発生します。
- 着信メッセージの値がデータ ソース値と文字列または式で比較され 、レスポンダーは一致した行データを使用してレスポンス メッセージを作成します。
- 特定の着信メッセージの値に一致するデータ ソース行がない場合は、デフォルトのフェイルオーバー設定を使って、一致するレスポンダー応答条件があるレスポンダーを探してレスポンダー スイートが検索されます。レスポンダー応答条件の条件に一致するレスポンダーがない場合はエラーがレポートされます。
- フェイルオーバー オプションが無効なレスポンダーに対してデータ ソース応答条件が失敗したときは必ず、直ちにエラーがレポートされ、Virtualize は一致するレスポンダーの検索を停止します。
- リクエスターにエラーが返されるとき、エラー イベントは [イベント メッセージ] ビューにも記録されます (仮想アセットのモニタリングが有効になっている場合。
- [複数レスポンス] モードを使用する場合、指定した条件でレスポンス一覧からレスポンス メッセージが選択されます。リクエスト メッセージの選択フィールドは、[複数レスポンス] モードのレスポンス メッセージ一覧にある各レスポンスの応答条件に対して評価され、最初に条件に一致したものが返されます。一致するメッセージが見つからなかった場合、リクエスターにエラー メッセージが返され、エラーが [イベント詳細] ビューに記録されます (仮想アセットのモニタリングが有効になっている場合。詳細は 「サーバーイベントの可視化」を参照)。
- [複数レスポンス] モードを使用しない場合、データ ソース応答条件を使用して (データ ソース応答条件をパラメータライズした場合)、または静的な値で (静的な値をパラメータライズしない場合)、ビルドおよびデータ投入されます。データ ソース応答条件が使用されるとき ( 「[データ ソース応答条件] タブ」を参照)、着信メッセージの値がデータ ソース値と文字列または式で比較され 、レスポンダーは一致した行データを使用してレスポンス メッセージを作成します。特定の着信メッセージの値に一致するデータ ソース行がない場合は、デフォルトのフェイルオーバー設定を使って、一致するレスポンダー応答条件があるレスポンダーを探してレスポンダー スイートが検索されます。レスポンダー応答条件の条件に一致するレスポンダーがない場合はエラーがレポートされます。さらに、フェイルオーバー オプションが無効なレスポンダーに対してデータ ソース応答条件が失敗したときは必ず、直ちにエラーがレポートされ、Virtualize は一致するレスポンダーの検索を停止します。リクエスターにエラーが返されるとき、エラー イベントは [イベント詳細] ビューにも記録されます (仮想アセットのモニタリングが有効になっている場合。詳細は 「サーバーイベントの可視化」を参照してください)。
- SQL レスポンダーの場合は、着信クエリーはテンプレートと関連するパラメーター値でマッチングされます (詳細については、 「データベースの記録から SQL レスポンダーを作成」を参照してください)。
- Virtualize は、URL エンコードされた POST リクエストの形式で送信されたボディ コンテンツを、リクエスト ボディに入れるのではなく、URL パラメーターとして扱います。これにより、個々のパラメーターに基づいて応答条件を作成する柔軟性が高まります。