このセクションでは、SonicMQ トランスポートについて説明します。SonicMQ トランスポートは、JMS トランスポートの拡張実装です。

セクションの内容:

SOAtest および一部 Virtualize サポート ツール、そしてセットアップ アクション ツールは、JMS メッセージ タイプに加えて、SonicMQ トランスポートの MultiPartMessage をサポートします。JMS メッセージ タイプの場合は、JMS トランスポートを使用する必要があります。JMS トランスポートの詳細については 「JMS」を参照してください。

送信メッセージの場合、MultiPartMessage はリクエスト メッセージを text/xml タイプとしてラップする単一のパーツで構成されます。ユーザーは、[パート コンテンツID] フィールドを使用してパートの 'Content-ID' ヘッダー フィールドの値を指定できます。受信メッセージの場合、JMS トランスポートもSonicMQ トランスポートも複数のパートからなる MultiPartMessage を解析できます。

SonicMQ のための新規テストを作成

SonicMQ のためのテストを作成するよう SOAtest を設定するには、次の操作を行います。

  1. 通常と同じように WSDL テスト作成ウィザードを完了します (詳細については 「WSDL からのテスト作成」を参照してください)。
  2. SonicMQ を使用するテストのノードをダブルクリックします。
  3. GUI 右側のパネルで [トランスポート] タブを開き、[トランスポート] メニューから [SonicMQ] を選択します。さまざまなオプションが表示されます。
  4. 以下のセクションの説明に従って必要なオプションを構成します。

SonicMQ オプションの構成

適切なツールの [トランスポート] タブで [トランスポート] メニューから [SonicMQ] を選択すると、[トランスポート] タブの左側のパネルに以下のオプションが表示されます。

接続設定

[接続設定] には [設定] タブと [プロパティ] タブがあります。[プロパティ] タブは任意オプションであり、[設定] タブで指定される プロバイダー URL および 初期コンテキスト プロパティの他に、JNDI の javax.naming.InitalContext コンストラクターに渡される付加的なプロパティを指定できます。[設定] タブには以下のオプションがあります。

[接続設定] には、以下のその他のオプションがあります。

キュー/トピック

[キュー/トピック オプション] には以下のオプションがあります。

メッセージング モデル

メッセージング モデル オプションは、アプリケーション間でどのようにメッセージが送信されるかを指定します。[ポイント ツー ポイント] または [パブリッシュ/サブスクライブ] を選択します。

メッセージ交換パターン

メッセージ交換パターン オプションは、SOAtest がレスポンスを受信するかどうかを指定します。[レスポンスの取得] をオンにすると、SOAtest はメッセージを送信してレスポンスを受信します。[レスポンスの取得] をオフにすると、SOAtest は一方向のメッセージを送信し、レスポンスを受信しません。

また、[レスポンスの取得] が選択されている場合には、 [メッセージ送信前に JMS の返信先にコンシューマーを作成] を有効化することもできます。JMS の返信先トピックに非常に短時間でレスポンスが到着することが予想される場合、このオプションをオンにして、レスポンス メッセージがパブリッシュされる前に必ず SOAtest が返信先トピックをサブスクライブしているようにします。

このオプションと [レスポンスの JMSCorrelationID とリクエストの JMSMessageID を照合] は同時に選択できません。なぜなら、 JSM の仕様はメッセージ送信後に JMSMessageID を生成するようベンダーに要求しているからです。そのため、メッセージが送信され JMSMessageID が利用可能になる前に、応答条件 (セレクター) を指定してレスポンスの返信先にコンシューマーを作成することはできません。 

メッセージ タイプ

メニューからメッセージ タイプを選択できます。SonicMQ メッセージは、SonicMQ クライアント間で転送されるデータを含む Java オブジェクトです。次のメッセージ タイプを選択できます。

パート コンテンツ ID

Sonic MultipartMessage は複数のパートを持つことができます。各パートには固有の名前 (ID) とコンテンツがあります。SOAtest および Virtualize は単一パートの MultipartMessages の送信をサポートします。このフィールドはパーツ名を指定し、内容はフォーム入力、リテラル、リテラル XML (SOAtest) などのリクエスト エリアによって定義されます。SOAtest と Virtualize は、複数のパーツを含む MultipartMessage の受信をサポートし、すべてのパーツの内容を XML としてツールのレスポンス出力に出力します。

リクエスト メッセージ プロパティ 

リクエスト メッセージ プロパティは任意プロパティです。メッセージをキューに送信 (またはトピックにパブリッシュ) する前に javax.jms.Message オブジェクトにさまざまなプロパティ値を設定できます。javax.jms.Message クラスの set メソッドを使用して発信リクエスト メッセージに設定する定義済みプロパティや、setStringProperty() で設定する任意のカスタム プロパティを設定できます。

レスポンス メッセージ応答条件 

[レスポンス メッセージ応答条件] には以下のオプションがあります。

SonicMQ を使用するクライアントのためのメッセージ オブジェクト出力

SonicMQ トランスポートを使用するツールにメッセージ オブジェクト出力を追加できます。たとえば、SonicMQ を使用する Messaging Client ツールに Extension ツールを連結すると、レスポンス SonicMQ メッセージにアクセスできます。ObjectMessage では、getter および equals() メソッドを使用してレスポンスを検証し、回帰コントロールを作成できます。また、レスポンス トラフィックに Diff ツールを連結し、レスポンスが ObjectMessage である場合、SOAtest は挿入されたシリアライザブル オブジェクトを XML 形式に変換し、XML の比較を実行します。その際、データ バンクの値を使用したり、XPath の差異を無視したりできます。

メッセージ オブジェクト出力を追加するには、次の操作を行います。

  1. 出力を追加するSOAP Client または Messaging Clientのノードを右クリックし、[出力の追加] をクリックします。[出力の追加] ウィザードが表示されます。

  2. 左側のパネルで [レスポンス] > [メッセージ オブジェクト] を選択し、右側のパネルで [新規ツール] または [既存ツール] を選択して任意のツール (Extension ツールなど) を選択します。
  3. [終了] をクリックします。選択されたクライアントのノードに新規出力が追加されます。