第4章 設定
本章では、AMQ OpenWire JMS 実装を JMS アプリケーションにバインドし、設定オプションを設定するプロセスについて説明します。
JMS は Java Naming Directory Interface (JNDI) を使用して、API 実装およびその他のリソースを登録し、検索します。これにより、特定の実装に固有のコードを作成せずに JMS API にコードを作成できます。
設定オプションは、接続 URI でクエリーパラメーターとして公開されます。
AMQ OpenWire JMS の設定に関する詳細は、ActiveMQ ユーザーガイド を参照してください。
4.1. JNDI 初期コンテキストの設定
JMS アプリケーションは InitialContextFactory
から取得した JNDI InitialContext
オブジェクトを使用して、接続ファクトリーなどの JMS オブジェクトを検索します。AMQ OpenWire JMS は、org.apache.activemq.jndi.ActiveMQInitialContextFactory
クラスで InitialContextFactory
の実装を提供します。
InitialContextFactory
の実装は、InitialContext
オブジェクトがインスタンス化されると検出されます。
javax.naming.Context context = new javax.naming.InitialContext();
実装を見つけるには、お使いの環境で JNDI を設定する必要があります。これには、jndi.properties
ファイルの使用、システムプロパティーの使用、または初期コンテキスト API の使用の 3 つの方法があります。
jndi.properties ファイルの使用
jndi.properties
という名前のファイルを作成し、Java クラスパスに配置します。java.naming.factory.initial
キーでプロパティーを追加します。
例: jndi.properties ファイルを使用した JNDI 初期コンテキストファクトリーの設定
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
Maven ベースのプロジェクトでは、jndi.properties
ファイルは <project-dir>/src/main/resources
ディレクトリーに配置されます。
システムプロパティーの使用
java.naming.factory.initial
システムプロパティーを設定します。
例: システムプロパティーを使用した JNDI 初期コンテキストファクトリーの設定
$ java -Djava.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory ...
初期コンテキスト API の使用
JNDI 初期コンテキスト API を使用してプロパティーをプログラム的に設定します。
例: プログラムでの JNDI プロパティーの設定
Hashtable<Object, Object> env = new Hashtable<>(); env.put("java.naming.factory.initial", "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); InitialContext context = new InitialContext(env);
同じ API を使用して、接続ファクトリー、キュー、およびトピックの JNDI プロパティーを設定できます。