このセクションでは、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 コンストラクターに渡される付加的なプロパティを指定できます。[設定] タブには以下のオプションがあります。

  • SonicMQ 接続用の共有プロパティを作成した場合、ドロップダウン メニューが使用可能になり、[ローカルの設定を使用] または [共有プロパティを使用] を選択できます。
    • [共有プロパティを使用] を選択すると、もう 1 つのドロップダウン メニューが表示され、ツールが使用するグローバル SonicMQ 設定を選択できます。 詳細については「グローバル設定の追加」を参照してください。詳細については「グローバル設定の追加」または「グローバル設定の追加」を参照してください。

    • [ローカルの設定を使用] を選択するか、共有プロパティが設定されていない場合は、接続設定の他のオプションを構成できます。
  • プロバイダー URL: JNDI javax.naming.InitialContext コンストラクターに渡される javax.naming.Context.PROVIDER_URL プロパティの値を指定します。
  • 初期コンテキスト: JNDI javax.naming.InitialContext コンストラクターにjavax.naming.Context.INITIAL_CONTEXT_FACTORY プロパティの文字列値として渡される完全修飾クラス名の文字列を指定します。
  • 接続ファクトリ: ファクトリの JNDI 名を指定します。これは、javax.jms.QueueConnectionFactory または javax.jms.TopicConnectionFactory インスタンスを生成するために javax.naming.InitialContext の lookup() メソッドに渡されます。

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

  • キュー接続またはトピック接続の認証: キュー接続を作成するためのユーザー名およびパスワードを指定できます。リクエストを認証するには、[認証の実行] を有効にし、[ユーザー名] および [パスワード] を入力します。不正なユーザー名とパスワードが使用された場合、リクエストは認証されません。ここで提供されたユーザー名とパスワードは javax.jms.QueueConnection のインスタンスを取得するために、javax.jms.QueueConnectionFactory クラスの createQueueConnection() メソッドに渡されます。

  • キープアライブ接続 : テストが現在の接続を共有するかクローズするかを指定します。共有接続は接続プールに返され、他のテスト スイートで使用されます。接続プールのライフ サイクルは次のとおりです。
    • 単一のテストの場合、テスト実行後に接続プールが破棄されます。
    • テスト スイートの場合、テスト スイート実行の最後で接続プールが破棄されます。

キュー/トピック

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

  • JMS Destination: メッセージを送信するキュー名 (ポイント ツー ポイントを使用する場合) まはたトピック名 (パブリッシュ/サブスクライブを使用する場合) を指定します。
  • JMS ReplyTo: レスポンス メッセージを取得するキュー名 (ポイント ツー ポイントを使用する場合) まはたトピック名 (パブリッシュ/サブスクライブを使用する場合) を指定します。[差出人] ではなく [一時的] を選択すると、一時キューを使用できます。

メッセージング モデル

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

メッセージ交換パターン

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

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

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

メッセージ タイプ

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

  • progress.message.jclient.MultipartMessage

パート コンテンツ ID

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

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

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

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

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

  • レスポンスの JMSCorrelationID とリクエストの JMSMessageID を照合: このオプションをオンにすると、セレクター式に JMSCorrelationID = '[msgId]' という条件が追加されます。msgId は発信 (リクエスト) avax.jms.Message が getJMSMessageID() を使用して動的に生成する値です。つまり、指定された相関 ID を持つメッセージがキュー (またはトピック) で利用可能になるまで、ツールはブロックされます。また、ツールはキュー (またはトピック) の任意のメッセージではなく、指定された特定のメッセージだけを取得します。タイムアウト期間が経過してもセレクター条件によって期待されるメッセージがない場合、ツールはタイムアウトします。
  • レスポンスの JMSCorrelationID とリクエストの JMSCorrelationID を照合 : このオプションをオンにすると、セレクター式に JMSCorrelationID = '[correlationId]' という条件が追加されます。correlationId は [リクエスト メッセージ プロパティ] セクションの JMSCorrelationID プロパティから取得されます。このオプションは、[リクエスト メッセージ プロパティ] セクションに JMSCorrelationID プロパティが追加されている場合にだけ利用可能です。このオプションがオンの場合、指定された相関 ID を持つメッセージがキュー (またはトピック) で利用可能になるまで、ツールはブロックされます。また、ツールはキュー (またはトピック) の任意のメッセージではなく、指定された特定のメッセージだけを取得します。タイムアウト期間が経過してもセレクター条件によって期待されるメッセージがない場合、ツールはタイムアウトします。
  • その他のセレクター式の条件: (任意) メッセージ フィルターとして機能する値を入力します。 セレクターの指定に関するヒントについては、 「メッセージ セレクター フィルターの使用」(SOAtest) または「メッセージ セレクター フィルターの使用」(Virtualize) を参照してください。

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

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

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

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

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