前のトピック: JMS メッセージング ステップ次のトピック: JMS メッセージング - メッセージ コンシューマ


JMS メッセージング(JNDI)

JMS メッセージング (JNDI)ステップでは、トピックおよびキューに対してメッセージを送受信できます。 また、既存のメッセージを受信、変更、転送できます。 使用可能なキューおよびトピックのリストは、JNDI を使用して参照できます。 DevTest が読み取ることができるクライアント ライブラリを提供します。

空、テキスト、オブジェクト、バイト、メッセージ、マップ済み(拡張)など、一般的なメッセージ タイプがすべてサポートされています。

JMS メッセージング (JNDI)ステップは、メッセージング要件にかかわらず、単一のエディタを使用して設定されます。 入力オプションはメッセージング要件によって異なります。 エディタは有効な設定のみを許可します。そのため、一部の機能を有効にすると、その他の機能が非アクティブになる場合があります。

JMS メッセージング(JNDI)ステップには、「JMS パブリッシュ キュー名 パブリッシュ」という命名規則を使用したデフォルトの名前があります。 パブリッシュ キュー名がない場合、デフォルトのステップ名は「JMS サブスクライブ キュー名 サブスクライブ」です。 デフォルトのステップ名を別のステップが使用する場合、DevTest は、このステップ名に番号を追加して一意にします。 ステップ名は、いつでも変更できます。

前提条件: このアプリケーションと一緒に DevTest を使用するには、1 つ以上のファイルを DevTest で使用可能にする必要があります。 詳細については、「管理」の「サードパーティ ファイル要件」を参照してください。

パラメータ要件: このステップには、テスト中のアプリケーションで使用される接続パラメータ、およびキューまたはトピック名が必要です。 環境に応じて、その他のパラメータが必要となる場合があります。 これらのパラメータは、アプリケーション開発者から入手します。 ほとんどの場合、これらの必須パラメータの一部を取得するために、サーバ リソースを参照できます。

examples プロジェクトの jms.tst テスト ケースには、このセクションで説明するステップが示されています。

jms.tst テスト ケースは、JMS のパブリッシュ/サブスクライブ ステップを使用して、メッセージの送信および一時キューのリスンを行います。 サーバ上の メッセージ駆動型 Bean (MDB)は、メッセージを処理し、一時キューのメッセージをドロップします。 メッセージ タイプはテキストです。 メッセージは、XML エレメントにプロパティを動的に挿入することにより作成される XML ペイロードです。 プロパティは order_data データ セットから読み取られます。 応答メッセージを受信すると、JMS メッセージからの XML がプロパティに格納されます。 次のステップは、順番(ID)を検証するアサーションを実行します。 この確認で true をアサートした後、既存のメッセージ オブジェクトは変更され、メッセージは別の JMS 送信先に送信されます。

jms.tst テスト ケースは、メッセージが複数のメッセージング サービス バックボーンを介して送受信される場合に、メッセージをリスンおよびインターセプトする方法を示します。 お使いのコンピュータ上のデモ サーバに対してこのテスト ケースを実行できます。 アプリケーション バックエンドはそこで使用可能です。

JMS メッセージング(JNDI)ステップ エディタには以下のタブが含まれます。

[ベース]タブ

ベース]タブでは、接続およびメッセージング パラメータを定義します。

以下の図は、[ベース]タブを示しています。 このタブは、以下のセクションで構成されています。

サブスクライバ情報]、[パブリッシャ情報]、および[返信先情報]を有効および無効にするには、各セクションの左上隅にある[有効]チェック ボックスを使用します。 このオプションにより、ステップをパブリッシュ ステップ、サブスクライブ ステップ、またはその両方に設定できます。 また、オンにすると、ステップに JMS の返信先コンポーネントを含めることもできます。

テスト ステップの設定が完了したら、[エラー処理およびテスト]セクションの[テスト]をクリックして設定をテストします。

 

サーバ接続情報

ベース]タブの[サーバ接続情報]セクションに JNDI 情報を入力します。

テスト中のアプリケーションの変更を容易にするには、これらの値を設定内のプロパティでパラメータ化します。 上記の図は、この方法の例を示しています。

テスト中のシステムに対して、以下のパラメータを使用できます。

JNDI ファクトリ クラス

JNDI プロバイダのコンテキスト ファクトリの完全修飾クラス名。

JNDI サーバ URL

JNDI サーバに接続するための URL。 URL の形式は、使用されている特定の JNDI プロバイダによって異なります。

JMS 接続ファクトリ

検索アイコン - 虫めがね を使用して、サーバ上の利用可能なリソースを参照します。 JMS 仕様に従って、このステップの実行に使用する接続ファクトリを選択または入力します。

プルダウン メニューには、これらの値の一般的な例またはテンプレートが含まれます。

ユーザおよびパスワードはオプションとなる場合があります。

ユーザ

JNDI プロバイダに接続し、接続ファクトリのハンドルを取得するためのユーザ名。

パスワード

JNDI プロバイダに接続し、接続ファクトリのハンドルを取得するためのパスワード。

セッションの共有およびパブリッシャの共有

テスト ケース全体で JMS セッションおよびパブリッシャを共有するには、これらのチェック ボックスを使用します。 この方法はオーバーヘッドを低減できますが、通常、JMS クライアントがリソースを解放するため、現実的なシミュレーションとなるとは限りません。 [パブリッシャの共有]チェック ボックスをオンにすると、[セッションの共有]チェック ボックスもオンになります。 セッションを共有しなければ、パブリッシャを共有できません。 これらのパラメータの詳細については、「Deliberate Delays in VSE」ナレッジ ベース記事を参照してください。

すべて停止

設計時にすべてのリスナを停止します。 一部のリスナは切り離すことができますが、引き続きメッセージを処理します。 メッセージを処理する場合は、テスト ケースを作成することは困難です。

詳細

接続情報と一緒に送信されるカスタム プロパティを追加でき、第 2 レベルの認証を設定できるパネルを表示します。

注:サーバ接続情報]セクションの[ユーザ]および[パスワード]フィールドは、JNDI プロバイダに接続して接続ファクトリのハンドルを取得するためのものです。 [第 2 レベル認証]タブの[ユーザ]および[パスワード]フィールドは、実際の JMS 接続のハンドルを取得するためのものです。

 

パブリッシャ情報

メッセージを送信する機能を設定するには、[有効]チェック ボックスをオンにします。

メッセージを送信する場合にコミットを実行するには、[トランザクションの使用]チェック ボックスをオンにします。

以下のパラメータを入力します。

名前

トピックまたはキューの名前。 [検索]アイコン アイコン - 虫めがね を使用して、トピックまたはキュー名の JNDI サーバを参照します。

タイプ

トピックまたはキューを使用する場合に選択します。 どのメッセージがキュー(のみ)で処理されるのを待機しているかを確認するには、このフィールドの右にある[検索]アイコン [参照]アイコン を使用します。

メッセージ

送信するメッセージのタイプを選択します。 サポートされているタイプは、[なし]、[テキスト]、[オブジェクト]、[バイト]、[メッセージ]、および[マップ済み(拡張)]です。

詳細

メッセージ ヘッダの編集とメッセージ プロパティの追加を行えるパネルを表示します。

 

サブスクライバ情報

メッセージを受信する機能を設定するには、[有効]チェック ボックスをオンにします。

以下のパラメータを入力します。

名前

トピックまたはキューの名前。 [検索]アイコン アイコン - 虫めがね を使用して、トピックまたはキュー名の JNDI サーバを参照します。

タイプ

トピックまたはキューを使用するかどうか、および同期または非同期モードでリスンするかどうかを選択します。 非同期モードでは、[非同期キー]フィールドにもエントリが必要です。 どのメッセージがキューで消費されるのを待機しているかを確認するには、このフィールドの右にある[検索]アイコン [参照]アイコン を使用します。

タイムアウト(秒)

メッセージの待機中に中断するまでの時間。 タイムアウトを指定しない場合は 0 とします。

非同期キー

非同期メッセージを識別するために必要な値。 このフィールドは非同期モードにのみ必要です。 このフィールドは、非同期メッセージを取得するために後続のメッセージ コンシューマ ステップで使用されます。

持続セッション キー

ここで名前を入力することによって、持続セッションを要求します。 また、そのセッションのキーも指定します。 持続セッションでは、ログアウトした後に再度ログインしても、トピックからのメッセージをすべて受信できます。

セッション モード

使用できるオプションは以下のとおりです。

[自動確認応答]、[クライアント確認応答]、[自動確認応答(重複を許可)]には、実質的な違いはありません。 [クライアント確認応答]では、受信した各メッセージは受信時にすぐ確認されます。 違いは、JMS クライアント ライブラリに実行させる代わりに、確認応答コールが明示的に作成されるという点だけです。 [自動確認応答(重複を許可)]では、高負荷の場合以外は、[自動確認応答]と動作は同じです。

トランザクションの使用]オプションは、厳密には確認応答モード設定ではありません。 このオプションは、以下の 2 つの理由でリストに含まれています。

 

ReplyTo 情報

送信先キュー/トピックを設定するには、[有効]チェック ボックスをオンにします。

アプリケーションが送信先を必要とする場合、このセクションで設定されます。

以下のパラメータを入力します。

名前

トピックまたはキューの名前。 [検索]アイコン アイコン - 虫めがね を使用して、トピックまたはキュー名の JNDI サーバを参照します。

タイプ

トピックまたはキューを使用する場合に選択します。 どのメッセージがキュー(のみ)で処理されるのを待機しているかを確認するには、このフィールドの右にある[検索]アイコン [参照]アイコン を使用します。

 

エラー処理およびテスト

エラーが発生した場合、[エラー処理およびテスト]セクションはステップにリダイレクトします。

環境エラーの場合

環境エラーが発生した場合に実行するステップまたは実行するアクションを選択します。

ステップ設定をテストするには、[テスト]をクリックします。

[セレクタ クエリ]タブ

セレクタ クエリ]タブでは、JMS セレクタ クエリを入力できます。 構文は SQL に準拠しています。 このクエリは SQL92 のサブセットです。

JMS セレクタ クエリは、パブリッシュされたメッセージに対する応答であるキュー上のメッセージをリスンする場合に指定できます。

以下の図は、元のメッセージで送信された lisa.jms.correlation.id プロパティに一致する JMSCorrelationID を検索するクエリを示しています。

JMS メッセージング (JNDI)ステップの[セレクタ クエリ]タブ

[メッセージ データの送信]タブ

メッセージ データの送信]タブは、ステップがパブリッシュのために設定されている場合にメッセージを作成する場所です。

テキストを入力できます。または、タブの右下隅の[ファイルからメッセージを読み取り]ボタンを使用して、ファイルからテキストを読み取ることができます。 また、プロパティにテキストを格納できます。その場合、エディタにプロパティ(例: {{プロパティ名}})を配置します。

以下の図は、プロパティを持った XML フラグメントを示しています。 プロパティを使用すると、テストの実行時にメッセージを動的に作成することができます。

JMS メッセージング (JNDI)ステップの[メッセージ データの送信]タブ

[応答メッセージ]タブ

ステップがサブスクライブのために設定されている場合、[ベース]タブの[テスト]をクリックすると、応答が[応答メッセージ]タブに表示されます。

このタブには、返されるオブジェクトの複合オブジェクト エディタが表示されます。 返されるオブジェクトは、アプリケーション サーバのタイプによって異なります。 メッセージ自体に加えて、返されるすべての JMS パラメータにアクセスできます。 オブジェクトは、オブジェクトをその他の Java オブジェクトのように操作できる複合オブジェクト エディタにロードされます。

以下の図は、JBoss オブジェクトからのテキスト応答を示しています。

JMS メッセージング (JNDI)ステップの[応答メッセージ]タブ