このセクションでは、メッセージプロキシを作成する基本手順について説明します。
このセクションの内容
プロキシの追加
[Virtualize サーバー] または [SOAtest サーバー] ビュー
でサーバーを右クリックし、[メッセージ プロキシの追加] を選択します。新しい Proxy ノードが Message Proxies フォルダーの下に追加されます追加されたプロキシは初期状態では無効になっています。プロキシを使用するには、プロキシを構成する必要があります。
プロキシまたはフォルダーを削除するには、ノードを右クリックして [削除] を選択します。
プロキシを含むフォルダーを削除すると、プロキシはデプロイ解除され、サーバーから削除されます。
サーバー ビューでノードを右クリックし、[メッセージ プロキシの追加] を選択して、メッセージ プロキシ フォルダーまたはサブフォルダーに直接プロキシを作成することもできます。
メッセージ プロキシの編成
サーバーの Message Proxiesフォルダーにサブフォルダーを作成して、その内容を整理できます。
フォルダーの新規作成
- ノードを右クリックし、[新規フォルダー] を選択します。
- プロンプトが表示されたら、フォルダー名を指定します。
フォルダー名の変更
フォルダーを右クリックして、 [名前の変更] を選択します。サーバー ビューでデフォルトのフォルダー(仮想アセット、メッセージプロキシなど)の名前を変更することはできません。
フォルダーの移動
右クリック メニューから、フォルダーまたはプロキシをコピーして、メッセージ プロキシ フォルダー内の別のフォルダーに貼り付けることができます。
サブ フォルダーとプロキシを他のサブフォルダーにドラッグすることもできます。
プロキシの構成
追加されたノードをダブル クリックし、コンフィギュレーション パネルを開きます。
[全般] タブで、プロキシの名前と説明を入力します (説明の入力は任意)。
[HTTP リスナー] タブをクリックし、HTTP(S) リスナーが待機するポートを設定します。HTTP リスナーは、HTTP トラフィックを記録するための接続設定を容易にします。
[リスナーの追加] をクリックし、リスナーの名前を入力します。
[ポートの追加] をクリックし、ポート番号を入力します。ポート番号として 0
を指定すると、メッセージ プロキシがポートを自動的に割り当てることができます。プロキシを有効にすると、割り当てられたポート番号がコンソールに表示されます。メッセージ プロキシが変更/有効化されるたびに、ポートがランダムに割り当てられます。GET リクエストを messageProxies
API エンドポイントに送信して、自動的に割り当てられたポート番号を返すこともできます。詳細については「REST API によるテスト」を参照してください。
クライアントが SSL 経由でトラフィックを送信する場合、[セキュア] オプションをオンにして認証オプションを有効化します。詳細については「リスナー ポートの SSL 設定」を参照してください。
[OK] をクリックしてポート エディターを終了します。
[追加] をクリックしてリスナーに別のポートを追加するか、[OK] をクリックしてリスナーの追加を終了します。
[接続] タブを開きます。どのエンド ポイントをプロキシでリスンするか、着信メッセージをどこに転送するかを指定します。プロキシを使用する各エンド ポイントに、次の操作を行います。
[追加] をクリックします。
適切なトランスポートタイプを選択します。
プロキシ設定を入力します。
HTTP/HTTPS: 「HTTP の設定」を参照。
JMS: 「HTTP の設定」を参照。
MQ: 「MQ の設定」を参照。
内部: 「内部トランスポート設定」を参照。内部プロキシは仮想アセットまたは他の内部トランスポート プロキシにトラフィックを向かわせることができます。そのため、複雑な仮想アセットをデプロイする際にキューの数を削減できるほか、内部的にルーティングする際にパフォーマンスを向上させることができます。
[トラフィック ファイル] フィールドで、トラフィックデータを保存する場所を指定します。トラフィック データは、プロキシを記録モードに設定した場合にキャプチャされます。後でこのトラフィック ファイルを使用して、キャプチャされたライ ブ トラフィックを表現する仮想アセットを生成できます。記録されたトラフィック ファイルへの簡単なアクセス方法については、「リモート サーバーとローカル マシン間でのファイル転送」を参照してください。
デフォルトでは、トラフィックは %n_%d_%t.txt
(<proxy_name>_<current_date>_<current_time>.txt
) という名前のファイルに記録されます。recorded_traffic
フォルダー内に保存されます(このフォルダーが存在しない場合は作成されます)。ファイル名は変更できますが、フォルダー名は変更できません。このフォルダーは常にVirtualAssets プロジェクト内に置かれます。
ファイル名を指定するときに、%d ( 現在の日付) や %t ( 現在の時間)、%n ( プロキシ名)、%u ( ユニークな時間ベースの ID) といった変数を使用できます。名前とともにワイルドカードを使用できます。たとえば、%nProxyTraffic%d
または %u_%d%nTraffic
と指定できます。
同時に同じトラフィック ファイルに書き込むために複数のプロキシ接続を設定しないでください。そのように設定すると、トラフィック ファイルが破損する可能性があります。
[レコーディング セッション] エリアで、トラフィック ファイルにどのようにトラフィック データを記録するかを指定します。
[新規セッション データの追加] は、既存のトラフィック ファイル ([トラフィック ファイル] フィールドで指定されたファイル) に、新規トラフィック データを追加します。指定したファイルが存在しない場合、新しいファイルが作成されます。詳細については下記の「More on Recording Session Options」を参照してください。
[セッションデータの上書き] は、既存のトラフィック ファイル ([トラフィック ファイル] フィールドで指定されたファイル) に、トラフィック データを上書きします。指定したファイルが存在しない場合、新しいファイルが作成されます。詳細については下記の「More on Recording Session Options」を参照してください。
[メッセージのペアごとに新規セッション ファイル (HTTP および内部のみ)] は、リクエスト/ レスポンスのペアごとに別のトラフィック ファイルを作成します。詳細については下記の「More on Recording Session Options」を参照してください。
[OK] をクリックします。
以上で、「プロキシの有効化/無効化」に記載のように、プロキシを有効にできるようになりました。さらに、「メッセージ プロキシからのトラフィックの記録」に記載のように、記録を開始できます。
HTTP メッセージ プロキシの設定:ビデオ チュートリアル
この動画は、ライブ トラフィックをキャプチャ可能なメッセージ プロキシの設定方法を説明します。
レコーディング セッション オプションの詳細
トラフィック ファイル名とレコーディング セッション オプションの組み合わせによって、どのようにトラフィック データを記録されるかを以下の表で説明します。
トラフィック ファイル名 | レコーディング セッション オプション | 結果 |
---|---|---|
Default / parameterized | 新規セッション データの追加 | レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Static | 新規セッション データの追加 | 指定のトラフィック ファイルに新規トラフィック データを追加します (トラフィック ファイルが存在する場合)。指定のファイルが存在しない場合、レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Default / parameterized | セッション データの上書き | レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Static | セッション データの上書き | 指定のトラフィック ファイルのトラフィック データを上書きします (トラフィック ファイルが存在する場合)。指定のファイルが存在しない場合、レコーディング セッションのすべてのリクエスト/レスポンスのペアを含む 1 個の新規ファイルを作成します。 |
Default / parameterized | メッセージのペアごとに新規セッション ファイル | レコーディング セッションのリクエスト/レスポンスのペアごとに新規に 1 個のファイルを作成します。複数のリクエスト/レスポンスのペアを検出した場合、複数のファイルを作成します。 |
Static | メッセージのペアごとに新規セッション ファイル | 指定のファイルが存在する場合、リクエスト/レスポンスのペアを検出するたびに、既存のトラフィック データを上書きします。 指定のファイルが存在しない場合、1 番目のリクエスト/レスポンスのペアに対して新規に 1 個のファイルを作成し、その後リクエスト/レスポンスのペアを検出するたびに既存のトラフィック データを上書きします。 どちらの場合も、結果的にファイルには最新のリクエスト/レスポンスのペアが記録されます。 |
プロキシが内部プロトコルを使用していてレコーディング中に MQ トラフィックを受け取る場合、[メッセージのペアごとに新規セッション ファイル] オプションはサポートされません。このオプションを選択している場合、デフォルトで [セッション データの上書き] の処理が実施されます。
サーバー間でプロキシを移動する
プロキシをあるサーバーから別のサーバーにドラッグして移動できます。または、あるサーバーからコピーして別のサーバーに貼り付けることもできます。
プロキシは、グローバル構成またはローカル構成を使用して MQ マネージャーに接続できます。グローバル構成は Virtualizer Server ごとに定義され、サーバーにデプロイされたプロキシまたは仮想アセットで使用できます([接続]タブ を参照)。ローカル構成は、個々のプロキシまたはアセットに対して定義されます。
MQ マネージャー接続構成がターゲットの Virtualize Server に存在しない場合、グローバル MQ マネージャーに接続されたプロキシまたはアセットをデプロイすることはできません。プロキシ/アセットを別の Virtualize Server に移動またはコピーする必要がある場合は、MQ マネージャー接続を手動で定義するか、コピー機能を使用して接続設定をターゲット サーバーに追加できます( MQManager接続のコピー を参照)。
無限ループを防止する
プロキシあるいは Message Forward ツールが誤って A> B> C> A のように転送サイクルを設定した場合、これは無限ループを引き起こします。このようなループを防ぐために、Virtualize と SOAtest は 10 ホップ後に転送を停止するように構成されています。この値は、システム プロパティ parasoft.proxy.loop.max.limit を設定することで変更できます (たとえば parasoft.proxy.loop.max.limit=5)。
このループの検出は内部経由の転送にだけ適用されます (たとえば、ローカル ホストへのルーティングには適用されますが、ホスト名へのルーティングには適用されません)。