| Oracle® Fusion Middleware Oracle WebLogic Server JMS プログラマーズ ガイド 11g リリース 1 (10.3.1) B55536-01 |
|
![]() 戻る |
以下の節では、送り先をルックアップする方法について説明します。
送り先または分散送り先のメンバーをルックアップするには、JNDI を使用することをお勧めします。送り先は、JNDI コンテキスト (context) を確立して、PTP または pub/sub メッセージングでそれぞれ次のようなコマンドを実行を実行することでルックアップできます。
Queue queue = (Queue) context.lookup(Dest_name);
Topic topic = (Topic) context.lookup(Dest_name);
Dest_name 引数には、コンフィグレーション時に定義された送り先の JNDI 名を指定します。「手順 1 : JNDI で接続ファクトリをルックアップする」を参照してください。
送り先または分散送り先のメンバーをルックアップする方法としてはあまり一般的ではありませんが、JNDI を使用しない方法として、次のような QueueSession または TopicSession のいずれかのメソッドを使用して、それぞれキューまたはトピックを参照する方法があります。
|
注意 : createQueue() メソッドと createTopic() メソッドでは送り先が動的には作成されず、すでに存在する送り先への参照が作成されるだけです。送り先の動的な作成については、「JMS モジュール ヘルパーを使用したアプリケーションの管理」を参照してください。 |
queueName または topicName 文字列の値は、以下で定義されます。
[送り先識別子を作成] の使用 (送り先をコンフィグレーションする場合)。「JMS キュー : コンフィグレーション : 全般」および「JMS トピック : コンフィグレーション : 全般」を参照してください。これらのメソッドの詳細については、それぞれ javax.jms.QueueSession (http://java.sun.com/javaee/5/docs/api/javax/jms/QueueSession.html) および javax.jms.TopicSession の Javadoc (http://java.sun.com/javaee/5/docs/api/javax/jms/TopicSession.html) を参照してください。
JMS_Server_Name/JMS_Module_Name!Destination_Name (例 : myjmsserver/myModule-jms!mydestination)。Interop モジュールの送り先を参照する場合、文字列は JMS_Server_Name/interop-jms!Destination_Name (例 : myjmsserver/interop-jms!mydestination) で定義されます。
|
注意 : WebLogic Server 9.0 より前のリリースで送り先を参照する場合は、JMS_Server_Name!Destination_Name (例 : myjmsserver!mydestination) で定義される文字列を使用してください。 |
送り先を定義したら、以下の Queue メソッドまたは Topic メソッドを使用してキューまたはトピックにそれぞれアクセスできます。
public String getQueueName( ) throws JMSException public String getTopicName( ) throws JMSException
キュー名とトピック名が印刷可能なフォーマットで返されるようにするには、toString() メソッドを使用します。
[送り先識別子を作成] (CDI) は、JNDI を使用せずに標準 JMS javax.jms.Session の createQueue または createTopic API. を使用して送り先をルックアップする方法を提供する送り先または分散送り先のメンバーの参照名です。
この名前は、この送り先の対象となる JMS サーバのスコープ内でユニークである必要があります。ただし、JMS モジュール全体のスコープ内でユニークである必要はありません。たとえば、2 つのキューは、それぞれ異なる JMS サーバを対象にする限り、同じ CDI 名を持つことができます。
|
注意 : この名前は JMS サーバのスコープ内でユニークでなければならないため、この名前と衝突する送り先名が他の JMS モジュールに含まれている可能性があるかどうかを確認します。JMS サーバを対象とする送り先名を解決するのは、デプロイヤの役目です。 |
以下の節では、送り先または分散送り先のメンバーを参照する方法の例を示します。
以下の節では、送り先を参照する方法の例を示します。
この節では、createQueue または createTopic を使用して、CDI を使用する場合と使用しない場合について送り先を参照する方法の例を示します。
CDI をコンフィグレーションしない場合は、以下のように定義されます。
JMS_Server_Name/JMS_Module_Name!Destination_Name
CDI をコンフィグレーションする場合は、以下のように定義されます。
JMS_Server_Name/CDI_Name
|
注意 : (JMS_Server_Name を「.」に置き換えて) サーバ アフィニティを使用する場合は、検索がクラスタ全体ではなく JMS 接続ホストに制限されます。 |
以下の節では、JNDI を使用して送り先を参照する方法の例を示します。
JNDI 名をコンフィグレーションする場合は、以下のように定義されます。
Dest_JNDI_Name
ローカル JNDI 名をコンフィグレーションする場合、以下のように定義されます。
Dest_Local_JNDI_Name
|
注意 : ローカル JNDI 名は、JNDI コンテキスト ホストが送り先と同じサーバ上に存在する場合にのみ機能します。JNDI コンテキスト ホストは、接続ホストと同じであるとは限りません。 |
以下の節では、共通分散送り先 (UDD) を参照する方法の例を示します。
この節では、createQueue または createTopic を使用して、CDI を使用する場合と使用しない場合について UDD メンバーまたは論理 UDD を参照する方法の例を示します。
CDI をコンフィグレーションしない場合の個々のメンバーについては、以下のように定義されます。
jms-server-name)/module-name!jms-server-name@udd-name
CDI をコンフィグレーションする場合の個々のメンバーについては、以下のように定義されます。
jms-server-name)/cdi-name
|
注意 : CDI で jms-server-name を「.」に置き換えると、API は最初にローカルで使用できる/開始される UDQ メンバーを返します。 |
以下の節では、JNDI を使用して個々のメンバーを参照する方法の例を示します。
JNDI 名をコンフィグレーションする場合は、以下のように定義されます。
dest-jndi-name
ローカル JNDI 名をコンフィグレーションする場合は、以下のように定義されます。
dest-local-jndi-name
|
注意 : ローカル JNDI 名は、JNDI コンテキスト ホストが送り先と同じサーバ上に存在する場合にのみ機能します。JNDI コンテキスト ホストは、接続ホストと同じであるとは限りません。 |
論理 UDD を参照する場合は、CDI をコンフィグレーションするかしないかに関係なく、module-name!udd-name で定義されます。