Message Forward ツールは、別のエンドポイント (たとえば、実際のリソース) にメッセージを転送するためにメッセージ レスポンダー ツールに連結することができます。エンド ポイントから返される応答は、メッセージ レスポンダーから返された応答として使用されます。
このセクションの内容:
Message Forward ツールとは
Message Forward ツールは、メッセージ レスポンダー ツールの出力として追加できます。これにより、着信リクエストがメッセージ レスポンダーによって処理されない場合は Message Forward ツールが別のエンドポイントへリクエストを転送します。
たとえば、以下は仮想化したサービスの例です。
- クライアントは、Parasoft 仮想アセットにリクエストを送信する。
- 指定された応答条件に基づいてメッセージ レスポンダーが選択される。
- 選択された Message Forward ツールを連結したメッセージ レスポンダーは、着信リクエストにレスポンスしない。
- メッセージ レスポンダーは、着信リクエストを仮想化されている実際のライブ サービスを呼び出す Message Forward ツールに提供する。
- Message Forward ツールは、ライブサービスからのレスポンスをメッセージ レスポンダーに提供し、それをクライアントへのレスポンスとして使用する。
Message Forward ツールの構成
Message Forward ツールは、複数レスポンス ビューまたはデータソース応答条件 (両方ではない) を使用するように構成されたメッセージ レスポンダーで使用できます。
- データソース応答条件の場合: データソース応答条件で一致しない場合は、別のエンドポイントへ着信リクエストをリダイレクトします。
- 複数レスポンス ビューの場合: 着信リクエストが複数レスポンスの応答条件に1つも一致しない場合、別のエンドポイントへ着信リクエストをリダイレクトします。
複数レスポンス ビューまたはデータソース応答条件の両方を使用しているメッセージ レスポンダーに対して Message Forward ツールを連結しないでください。
レスポンダー スイート内のすべてのメッセージ レスポンダーが失敗した (応答条件に一致しなかった) 時に、 Message Forward ツールを使用して別のエンドポイントにメッセージをルーティングする場合は、仮想化したメッセージをレスポンスするレスポンダーに加え、最後のレスポンダーにはメッセージを転送 (キャッチオールとして機能) するように適切にレスポンダスイートをセットアップします。
Message Forward ツールを追加するには、次の操作を行います。
- メッセージ レスポンダー ツールを右クリックし、 [出力の追加] を選択します。
- [転送] > [トラフック] > [すべてのツール] > [Message Forward] を選択します。
- メッセージのリダイレクト先 (エンドポイント) を指定するようにツール設定を構成します。
- [トランスポート] タブの詳細についてはこちらを参照してください。
- HTTP 接続を使用せずにローカルの Virtualize サーバー上の仮想アセットにプロキシを転送したい場合、実際のホスト名ではなく localhost または 127.0.0.1 を入力します。
- デフォルト設定では、メッセージ レスポンダーが受信する適用可能な URL パス セグメントとパス パラメーターをこのツールは使用します。そのため、ツールの設定でそれらをハード コーディングする必要はありません。この動的なフォワードを実施したくない場合は [Forward incoming URL and path parameters] オプションを無効化してください。
注意:これらのフォワード パスは、HTTP メッセージ プロキシ フォワード パスと同じロジックを使って作成されます。 「メッセージ プロキシの設定」を参照してください。
- このオプションが有効な場合、メッセージ プロキシが使用する「リッスン パス」は、連結されたメッセージ レスポンダーの URL パス応答条件です。「フォワード パス」は Message Forward ツールのルーター エンドポイントです。
- 現在、ヘッダーは HTTP トランスポートのみで上書きできます。たとえば、MQMD ヘッダーや JMS プロパティ ヘッダーは、Message Forward ツールを上書きすることはできません。
- [その他] タブでは、タイムアウトと有効な HTTP 応答コードを設定できます。これらのメトリクスが満たされない場合、イベントは Parasoft イベント詳細パースペクティブのイベント ログにレポートされます (この機能を使用するには、[ウィンドウ] > [パースペクティブを開く] > [その他] を選択し、パースペクティブ ダイアログから [Parasoft イベントの詳細] を選択します)。
- [トランスポート] タブの詳細についてはこちらを参照してください。
内部トランスポートの使用
内部トランスポートを使用すると、内部エンドポイント タイプ (仮想アセットと内部トランスポート プロキシのいずれか) に フォワードすることができます。
- 仮想アセットにフォワードするには、[エンドポイント] > [仮想アセット] を選択し、仮想アセットの絶対パスを指定します ( [Virtualize Server] ビューから)。 Virtual Assets > folder > name の仮想アセットであれば、
folder/name
と入力します。 Virtual Assets > name の仮想アセットであれば、name
と入力します。 - 内部プロキシにフォワードするには、[エンドポイント] > [内部メッセージ プロキシ] を選択し、そのプロキシのプロキシ識別子を指定します。
無限ループを防止する
プロキシあるいは Message Forward ツールが誤って A> B> C> A のように転送サイクルを設定した場合、これは無限ループを引き起こします。無限ループを防止するために、Virtualize は 10 回のホップの後に停止するよう設定されています。この値は、システム プロパティ parasoft.proxy.loop.max.limit を設定することで変更できます (たとえば parasoft.proxy.loop.max.limit=5)。
なお、このループの検出は内部経由の転送にのみ適用されます (たとえば、ローカル ホストへのルーティングには適用されますが、ホスト名へのルーティングには適用されません)。