このセクションでは、Virtualize サーバーにデプロイされた個々の仮想アセットを設定する方法について説明します。Virtualize サーバーの設定を構成する方法については、「サーバーおよびデプロイメントの設定」を参照してください。
このセクションの内容:
仮想アセットの構成設定にアクセスするには、[Virtualize サーバー] ビューで仮想アセットをダブルクリックします。または、仮想アセットを右クリックして [開く] を選択することもできます。
さまざまなリクエスト/レスポンスのユース ケース、エラー条件、その他の振る舞いで仮想アセットをカスタマイズする方法については、「メッセージ レスポンダーの概要」に記載のように関連するメッセージ レスポンダー ツールをカスタマイズします。 |
[全般] タブでは、次の設定を指定できます。
メッセージ レスポンダーが設定されているレスポンダー スイート (本質的には .pva ファイル) を指定します。この仮想アセットのデプロイメント定義に使用されるファイルを変更するには、ローカルのワークスペースまたはファイル システム内で .pva ファイルを選択します。ファイルのパスは、VirtualAssets プロジェクト フォルダーからの相対パスです。
仮想アセットの説明を提供します。
JMS および/または MQ 上に仮想アセットをデプロイする前に、 Virtualize クラスパスに適切な JAR ファイルを必ず追加してください。 手順の詳細については、「システム プロパティの設定」を参照してください。 |
[トランスポート] タブには、どのように仮想アセットがメッセージを受信して応答するかについての設定があります。
以下の HTTP 設定を指定できます。
仮想アセットが HTTP 経由で着信メッセージをリッスンするサーバー上のパスを指定します。値を指定しない場合、JMS、 MQ、またはカスタム トランスポートのリスナー設定だけが受信するメッセージに適用されます。
着信メッセージに応答するように構成されたレスポンダーを検索するときに、 Virtualize に複数の仮想アセットを検査したい場合を除いて、各仮想アセットには一意の HTTP パスを与えることを推奨します。
同じ HTTP パス上に 1 つ以上の仮想アセットをデプロイする場合、 Virtualize はレスポンダー応答条件に基づいて、メッセージに一致するレスポンダーを見つけるまで各仮想アセットを検査します。そして、発見したレスポンダーおよび仮想アセットを応答に使用します。この場合、仮想アセットが評価される順番は固定ではありません。Virtualize は評価中に最初に発見した仮想アセットを使用します。
パスセグメントに動的な値を使用するために、ワイルドカードを使用できます。たとえば、2 つのリクエストが /path/1/service
と /path/2/service
というパスで Virtualize に送信されたと仮定します。両方のリクエストが同じプロキシを通るには、パスを /path/*/service
に設定します。
ワイルドカードはパスのセグメント全体を置換します。例:
/path/*/service
— 有効/path/1*2/service
— 無効(JMS や MQ でなく) HTTP を使用している場合、ここが仮想アセットに接続できる場所となります。仮想アセットを実行するには、アプリケーションが実際のリソースの URL の代わりにこの URL を使用するように設定します。このエンドポイントにアクセスできるマシンは、仮想アセットにアクセスして使用できます。
キューまたはトピックとメッセージを送受信するように仮想アセットを設定できます。JMS の設定については「JMS」を参照してください。
次の設定を指定できます。
このオプションを有効にすると、Destination キューと replyTo キューが指定されているメッセージング モデルが指定されます。メッセージング モデルを有効にした後、[ローカル設定] セクションで各接続の設定を入力するか、Virtualize サーバー レベルで定義されたグローバル JMS 接続を参照できます (「接続タブConfiguring Server and Deployment Settings Virtualize#Connections Tab」を参照)。
Publish および Subscribe トピックが指定されているメッセージング モデルを指定するには、このオプションを有効にします。メッセージング モデルを有効にした後、[ローカル設定] セクションで各接続の設定を入力するか、Virtualize サーバー レベルで定義されたグローバル JMS 接続を参照できます (「[接続] タブ」を参照)。
クライアント アプリケーションによって要求されたトピックの名前を指定し、[設定] ドロップダウン メニューから接続構成オプションを選択します
[ローカル設定] を選択して、[ローカル設定] セクションで指定されたプロバイダー URL、初期コンテキスト クラス、接続ファクトリ、およびログイン資格情報を使用するか、[Virtualize サーバー接続] タブで設定された接続を選択します (「Using Global JMS Connections」を参照)。
メッセージ宛先キューの名前を指定し、[設定] ドロップダウン メニューから接続構成オプションを選択します。
[ローカル設定] を選択して、[ローカル設定] セクションで指定されたプロバイダー URL、初期コンテキスト クラス、接続ファクトリ、およびログイン資格情報を使用するか、[Virtualize サーバー接続] タブで設定された接続を選択します (「Using Global JMS Connections」を参照)。
クライアントアプリケーションが応答のためにサブスクライブするトピックの名前を指定し、[設定] ドロップダウン メニューから接続構成オプションを選択します。
[ローカル設定] を選択して、[ローカル設定] セクションで指定されたプロバイダー URL、初期コンテキスト クラス、接続ファクトリ、およびログイン資格情報を使用するか、[Virtualize サーバー接続] タブで設定された接続を選択します (「Using Global JMS Connections」を参照)。
レスポンスを送信するキューの名前を指定し、[設定] ドロップダウン メニューから接続構成オプションを選択します。
[ローカル設定] を選択して、[ローカル設定] セクションで指定されたプロバイダー URL、初期コンテキスト クラス、接続ファクトリ、およびログイン資格情報を使用するか、[Virtualize サーバー接続] タブで設定された接続を選択します (「Using Global JMS Connections」を参照)。
メッセージの JMSReplyToQueueName ヘッダーを使用してレスポンスの送信先を決定するには、このオプションを有効にします。
[レスポンスに JMSReplyTo を使用する] オプションがオンの場合、着信リクエストの値を使用してレスポンスの送信先が決定されます。 無効な場合、レスポンスは GUI で指定されたキューに送られます。JMS メッセージヘッダーの値は無視されます。
(任意) 複数のサービスによって同じキューが使用されているとき、メッセージ セレクター式を指定すると役立ちます。たとえば、メッセージ セレクター式が product = 'virtualize'
'virtualize'"
である場合、仮想アセットは JMS メッセージ プロパティの product 値が virtualize であるキュー/トピックのメッセージだけを選択します。ヒントについては「メッセージ セレクター フィルターの使用」を参照してください。
ワーカー カウントは作成されるリスナー ワーカー スレッドの数に影響します。詳細については、「Adjusting the Worker Count」 を参照してください。
キューまたはトピックの接続設定を構成するときに [ローカル設定] を選択し、次の設定を構成します。サーバー レベルで構成された設定を使用するには、「Using Global JMS Connections」を参照してください。
JNDI javax.naming.InitialContext コンストラクターに渡される javax.naming.Context.PROVIDER_URL プロパティの値を指定します。
javax.naming.Context.INITIAL_CONTEXT_FACTORY プロパティの文字列の値として JNDI javax.naming.InitialContext コンストラクターに渡される完全修飾クラス名の文字列を指定します。
初期コンテキストから MOM 固有ファクトリをルックアップするために使用するキーを指定します。「キュー接続ファクトリ」または「トピック接続ファクトリ」を指定できます。関連する jar を必ず Virtualize のクラスパスに追加してください。特定の JMS プロバイダー用にどのファクトリクラスを追加するかのヒントについては、「JMS プロバイダーの設定」を参照してください。
必要に応じて、JMS プロバイダーのログイン資格情報を指定します。
このデプロイメントに適用する追加の初期コンテキスト JNDI プロパティを指定します。
Virtualize サーバー構成で定義された接続設定を使用できます。グローバルな JMS 接続設定の構成の詳細については、[接続] タブ を参照してください。グローバル JMS 接続を使用するには、[設定] ドロップダウン メニューから接続を選択します。
あらかじめ定義されたグローバル接続の詳細を確認するには、[設定の表示] をクリックします。
ビルトイン JMS メッセージ リスナーは、javax.jms.TextMessage メッセージ タイプを受信し応答します。
リクエストメッセージの JMSMessageID
は、レスポンス メッセージの JMSCorrelationID
として送信されます。
JMS 上にデプロイされた仮想アセットは、通常と同じように指定の宛先にアプリケーションからメッセージを送信またはパブリッシュすることによって簡単に呼び出すことができます。Virtualize はその宛先のメッセージを使用します。[メッセージ セレクター式] フィールドに値を指定した場合、その式に一致するメッセージを使用します。
環境をデバッグしたり仮想アセットの設定をテストしたりするとき、キュー ブラウザーを使用してキューのコンテンツを確認できます。キュー ブラウザーは、予期しない振る舞いの理解を理解して解決しようとするときに非常に役立ちます。詳細については、「キューのブラウズ (SOAtest)」または「キューのブラウズ (Virtualize)」を参照してください。
仮想アセットは必要な MQ 設定を構成する場合、 IBM WebSphere MQ キュー上で通信するサービスをエミュレートできます。詳細については IBM WebSphere MQ を参照してください。
以下の MQ 設定を指定できます。
Virtualize がリクエスト メッセージを取得するキュー (get または pull とも呼ばれる) を指定し、[設定] ドロップダウンメニューから接続設定を選択します。
[ローカル設定] を選択して、[ローカル設定] セクションで構成された接続設定を使用するか、Virtualize サーバー構成の [接続] タブで構成された設定を選択します (「Using Global MQ Queues」を参照)。
Virtualize がレスポンス メッセージを送信するキュー (put または push とも呼ばれる) を指定し、[設定] ドロップダウン メニューから接続設定を選択します。
[ローカル設定] を選択して、[ローカル設定] セクションで構成された接続設定を使用するか、Virtualize サーバー構成の [接続] タブ で構成された設定を選択します (「Using Global MQ Queues」を参照)。
メッセージの replyToQueueName ヘッダーを使用してレスポンスの送信先を決定するには、このオプションを有効にします。MQMT_REQUEST タイプの MQ メッセージへのレスポンスに影響を与えます。
[レスポンスに replyToQueueName を使用する] オプションがオンの場合、着信リクエストの値を使用してレスポンスの送信先が決定されます。 オプションが有効ではない場合、レスポンスは GUI で指定されたキューに送られます。具体的には以下のとおりです。
[レスポンスに replyToQueueName を使用する] オプションがオフの場合、MQ リクエストメッセージの replyToQueueManagerName およびreplyToQueueName フィールドは無視されます。GUI の設定によって、メッセージの送信先が決定されます。
(任意) 複数のアプリケーションによって同じキューが使用されている場合 ( または同じキューを介して複数のタイプのメッセージがやり取りされている場合)、Virtualize によってピックアップされたメッセージにフィルターを掛けることは不可欠です。このフィールドの値 (値が入力されている場合) は、キューのメッセージの MQMD applicationIdData フィールドに対して照合されます。このケースでは MQ API MQC.MQGMO_BROWSE_NEXT フラグはキューからメッセージを取得するのに使用されます。
ワーカー数は、作成されるリスナーのワーカー スレッド数に影響を与えます。詳細については、「Adjusting the Worker Count」 を参照してください。
キューまたはトピックの接続設定を構成するときに [ローカル設定] を選択し、次の設定を構成します。SSL は、ローカル設定の構成設定ではサポートされていません。Virtualize サーバーの [接続] タブ で SSL を使用するようにグローバル MQ キューを構成し、Connections Tab からキューを選択する必要があります (「Using Global MQ Queues」を参照)。
以下のいずれかのモードを選択します:
MQ キュー マネージャーのホストを指定します。
MQ キュー マネージャーのポートを指定します。
MQ キュー マネージャーのチャネルを指定します。
接続の詳細を提供するクライアント チャネル定義テーブル ファイルの場所を指定します。
リモート サーバーで CCDT モードを使用している場合、Virtualize Server ツリーの [Files] ノードに表示されるときと同じように、CCDT ファイルへの相対パスを指定します。 ワークスペースまたはファイル システムでファイルを参照するオプションは使用できません。
現在ローカルサーバーでデプロイされているが後でリモート サーバーでデプロイする仮想アセットを設定する場合、.pva ファイルと並行して CCDT ファイルを残すことを推奨します。リモート サーバーに仮想アセットをデプロイする前に、そのリモート サーバーに CCDT ファイルをデプロイする必要があります。詳細については「リモート サーバーとローカル マシン間でのファイル転送」を参照してください。
キュー マネージャーの名前を指定します。
ログイン資格情報が必要な場合は、このフィールドにユーザー名を指定します。
ログイン資格情報が必要な場合は、このフィールドにパスワードを指定します。
1 つの仮想アセット内で異なる MQ サーバーにデプロイされるようキューを設定したい場合 (たとえば特定の仮想アセットで、異なる MQ サーバーにデプロイされる 2 つのキューを使用したい場合)、Virtualize サーバー レベルでグローバルに定義し、ここで参照することができます。詳細については、「Connections Tab」を参照してください。
環境をデバッグしたり仮想アセットの設定をテストしたりするとき、キュー ブラウザーを使用してキューのコンテンツを確認できます。キュー ブラウザーは、予期しない振る舞いの理解を理解して解決しようとするときに非常に役立ちます。
詳細については、「キューのブラウズ」を参照してください。
各ワーカーが MQ/JMS プロバイダーに独自の接続を作成します。たとえば、20 のワーカーがある場合、WebSphere MQ Explorer では、仮想アセットがリスンするリクエスト (get) キューの Open input count 列の値として 20 が表示されるはずです。デフォルト値の 1 より多いワーカーのカウントで仮想アセットがデプロイ/再デプロイされると、コンソールに「Started x listener(s)」というメッセージが表示されます (x には構成されたワーカー数が入ります)。
ワーカーのカウントを増やすことは並列時のパフォーマンスに役立ちます。仮想アセットのメッセージ処理チェーン全体が並列化され、各ワーカーのスレッドは他のスレッドと並行してメッセージ応答条件、レスポンス メッセージの生成などを行います。しかし、高いワーカーのカウントを提供すると、作成/破棄する接続が増えるため、アセットのデプロイ/アンデプロイ/再デプロイに時間が掛かります。また、 MQ インフラストラクチャまたは JMS プロバイダーに許可する同時接続数の制限を持たせることが可能です。ユーザーのインフラストラクチャで構成/許可された数を越えるべきではありません。
ワーカー カウント機能は、Tomcat server.xml の maxThreads 属性と同等です。
Virtualize に高い数の同時仮想ユーザーを与えるとき ( 例: 負荷テスト中など)、通常はこれらの値を増やすことでより良いパフォーマンスを期待できます。
カスタム リスナーの設定は [カスタム] タブから行うことができます。
カスタム リスナーが 1 個だけの場合、[カスタム] タブはそのカスタム フォーマットの設定専用になります。
複数のカスタム リスナーがある場合、使用するカスタム リスナーを [実装の選択] ドロップダウン メニューから選択し、利用可能なコントロールを使って設定します。
「パフォーマンス プロファイルの使用」を参照してください。
「データ グループの使用」を参照してください。
SQL レスポンダーを含む .pvas に関して特別な制限はありません。任意のパスを使用できます。デフォルトでは、Parasoft JDBC ドライバーは/virtualDb にデプロイされた仮想アセットを呼び出します (Virtualize またはHybrid モードの場合)。別のエンドポイントにデプロイされた仮想アセットを呼び出すよう構成するには、「Parasoft JDBC ドライバーが呼び出す仮想アセットの指定」で説明するように、適切なプロパティを追加します。
1 つ以上の仮想アセットに同じパスを設定できます。この場合、Virtualize は着信クエリーに対応する仮想アセットおよび SQL レスポンダーを見つけます。
また、1 つのデータベース記録を複数の仮想アセットで使用し、それぞれ異なるパス/エンドポイントにデプロイすることもできます。こうすると、たとえば 3 つの異なるテスト対象アプリケーションがあり、すべて同じ仮想化されたデータベースの振る舞いを必要とする場合も、同じ記録から3 つの仮想アセットを作成し、各テスト対象アプリケーションが ( 別々のエンドポイントにデプロイされた) 異なる仮想アセットを指すよう設定できます。