7.2. PAX-JMS 設定サービス
mvn:org.ops4j.pax.jms/pax-jms-config/1.0.0
バンドルは、以下の 3 つを行う Managed Service Factory を提供します。
org.ops4j.pax.jms.service.ConnectionFactoryFactory
OSGi サービスを追跡し、そのメソッドを呼び出します。public ConnectionFactory createConnectionFactory(Map<String, Object> properties); public XAConnectionFactory createXAConnectionFactory(Map<String, Object> properties);
public ConnectionFactory createConnectionFactory(Map<String, Object> properties); public XAConnectionFactory createXAConnectionFactory(Map<String, Object> properties);
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
org.ops4j.connectionfactory
ファクトリー PID を追跡し、上記のメソッドに必要なプロパティーを収集します。Configuration Admin サービスで利用可能な方法を使用して ファクトリー設定 を作成する場合 (たとえば${karaf.etc}/org.ops4j.connectionfactory-artemis.cfg
ファイルを作成)、最終的な手順を実行して、データベース固有のコネクションファクトリーを公開できます。 -
javax.jms.ConnectionFactory
サービスおよびjavax.jms.XAConnectionFactory
サービスを追跡し、これらをプーリング JMS 接続ファクトリー内にラップします。
詳細は以下を参照してください。
7.2.1. AMQ 7.1 の接続ファクトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
以下は、Artemis ブローカーの接続ファクターを作成する方法を順をおって説明した 標準的 なガイドです。
pax-jms-artemis
機能とpax-jms-config
機能を使用して Artemis ドライバーをインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファクトリー設定 を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pax-jms-config
が設定を処理してjavax.jms.ConnectionFactory
サービスに指定しているかどうかを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記追加の Artemis 設定 (特に
protocol=amqp
) を指定した場合は、Artemis JMS クライアントの代わりに QPID JMS ライブラリーが使用されます。その後、amqp://
プロトコルをjms.url
プロパティーに使用する必要があります。- 接続をテストします。
これで、必要に応じて挿入できるブローカー固有の (まだプールなし) 接続ファクトリーができました。たとえば、jms
機能から Karaf コマンドを使用できます。
次のリストは、プロトコルを切り替えたときに何が起こるかを示しています。
7.2.2. IBM MQ 8 または IBM MQ 9 の接続ファクトリーの作成 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、IBM MQ 8 および IBM MQ 9 に接続する方法を説明します。pax-jms-ibmmq
は関連する pax-jms
バンドルをインストールしますが、ライセンス上の理由から IBM MQ ドライバーはインストールされません。
- https://developer.ibm.com/messaging/mq-downloads/ にアクセスします。
- ログインします。
- IBM MQ 8.0 Client または IBM MQ 9.0 Client など、インストールするバージョンをクリックします。
- 表示されるページの下部にあるダウンロードバージョンの表で、目的のバージョンをクリックします。
-
次のページで、接尾辞
IBM-MQ-Install-Java-All
が付けられた最新バージョンを選択します。たとえば、8.0.0.10-WS-MQ-Install-Java-All
or9.0.0.4-IBM-MQ-Install-Java-All
をダウンロードします。 - ダウンロードした JAR ファイルの内容をデプロイメントします。
bundle:install
コマンドを実行します。たとえば、/home/Downloads
ディレクトリーにコンテンツをデプロイメントした場合は、以下のようなコマンドを入力します。`bundle:install -s wrap:file:////home/Downloads/9.0.0.4-IBM-MQ-Install-Java-All/ibmmq9/wmq/JavaSE/com.ibm.mq.allclient.jar`.
`bundle:install -s wrap:file:////home/Downloads/9.0.0.4-IBM-MQ-Install-Java-All/ibmmq9/wmq/JavaSE/com.ibm.mq.allclient.jar`.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のように接続ファクトリーを作成します。
pax-jms-ibmmq
をインストールします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow ファクトリー設定 を作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow pax-jms-config
が設定を処理してjavax.jms.ConnectionFactory
サービスに指定しているかどうかを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 接続をテストします。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
メッセージが IBM MQ Explorer から送信されたのか、Web コンソールから送信されたのかを確認することもできます。
7.2.3. Fuse on Apache Karaf での JBoss A-MQ 6.3 クライアントの使用 リンクのコピーリンクがクリップボードにコピーされました!
Fuse の Software Downloads ページから Fuse quickstarts
をダウンロードできます。
クイックスタート zip ファイルの内容をローカルフォルダーにデプロイメントします (例: quickstarts
という名前のフォルダー)。
次に、quickstarts/camel/camel-jms
の例を OSGi バンドルとしてビルドしてインストールできます。このバンドルには、メッセージを JBoss A-MQ 6.3 JMS キューに送信する Camel ルートの Blueprint XML 定義が含まれます。JBoss A-MQ 6.3 ブローカーの接続ファクトリーを作成する手順は次のとおりです。
7.2.3.1. 前提条件 リンクのコピーリンクがクリップボードにコピーされました!
- Maven 3.3.1 以降がインストールされている。
- Red Hat Fuse がマシンにインストールされている。
- JBoss A-MQ Broker 6.3 がマシンにインストールされている。
- カスタマーポータルから Fuse on Karaf クイックスタートの zip ファイルをダウンロードしてデプロイメントしている。
7.2.3.2. 手順 リンクのコピーリンクがクリップボードにコピーされました!
-
quickstarts/camel/camel-jms/src/main/resources/OSGI-INF/blueprint/
ディレクトリーに移動します。 camel-context.xml
ファイルで id="jms" のある以下の Bean を見つけます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のセクションを使用して、JBoss A-MQ 6.3 接続ファクトリーをインスタンス化します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow JBoss A-MQ 6.3 接続ファクトリーは、
tcp://localhost:61616
でリッスンするブローカーに接続するよう設定されます。デフォルトでは、JBoss A-MQ は IP ポート値61616
を使用します。接続ファクトリーはユーザー名/パスワードの認証情報で userName/password を使用するよう設定されています。このユーザーがブローカーの設定で有効にされていることを確認します (または、ここでこれらの設定をブローカー設定に合わせてカスタマイズすることもできます)。-
camel-context.xml
ファイルを保存します。 camel-jms
クイックスタートをビルドします。cd quickstarts/camel/camel-jms mvn install
$ cd quickstarts/camel/camel-jms $ mvn install
Copy to Clipboard Copied! Toggle word wrap Toggle overflow クイックスタートが正常にインストールされた後、
$FUSE_HOME/
ディレクトリーに移動し、以下のコマンドを実行して Fuse on Apache Karaf サーバーを起動します。./bin/fuse
$ ./bin/fuse
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Fuse on Apache Karaf インスタンスで、
activemq-client
機能とcamel-jms
機能をインストールします。karaf@root()> feature:install activemq-client karaf@root()> feature:install camel-jms
karaf@root()> feature:install activemq-client karaf@root()> feature:install camel-jms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow camel-jms
クイックスタートバンドルをインストールします。karaf@root()> install -s mvn:org.jboss.fuse.quickstarts/camel-jms/{$fuseversion}
karaf@root()> install -s mvn:org.jboss.fuse.quickstarts/camel-jms/{$fuseversion}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow {$fuseversion}
は、ビルドした Maven アーティファクトの実際のバージョンに置き換えます (camel-jms クイックスタートの README ファイルを参照)。JBoss A-MQ 6.3
ブローカーを起動します (これに JBoss A-MQ 6.3 のインストールが必要です)。別のターミナルウィンドウを開き、JBOSS_AMQ_63_INSTALLDIR ディレクトリーに移動します。cd JBOSS_AMQ_63_INSTALLDIR ./bin/amq
$ cd JBOSS_AMQ_63_INSTALLDIR $ ./bin/amq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Camel ルートが起動すると、即座に
work/jms/input
ディレクトリーが Fuse インストールに表示されます。このクイックスタートのsrc/main/data
ディレクトリーにあるファイルを新しく作成したwork/jms/input
ディレクトリーにコピーします。 しばらく待つと、
work/jms/output
ディレクトリー以下に同じファイルが国別に分類されます。order1.xml, order2.xml and order4.xml in work/jms/output/others order3.xml and order5.xml in work/jms/output/us order6.xml in work/jms/output/fr
order1.xml, order2.xml and order4.xml in work/jms/output/others order3.xml and order5.xml in work/jms/output/us order6.xml in work/jms/output/fr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow log:display
を使用してビジネスロギングを確認します。Receiving order order1.xml Sending order order1.xml to another country Done processing order1.xml
Receiving order order1.xml Sending order order1.xml to another country Done processing order1.xml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
7.2.4. 処理されたプロパティーの概要 リンクのコピーリンクがクリップボードにコピーされました!
Configuration Admin ファクトリー PID からのプロパティーは、関連する org.ops4j.pax.jms.service.ConnectionFactoryFactory
実装に渡されます。
ActiveMQ
org.ops4j.pax.jms.activemq.ActiveMQConnectionFactoryFactory
(JMS 1.1 のみ)org.apache.activemq.ActiveMQConnectionFactory.buildFromMap()
メソッドに渡されるプロパティーArtemis
org.ops4j.pax.jms.artemis.ArtemisConnectionFactoryFactory
protocol=amqp
の場合、プロパティーはorg.apache.qpid.jms.util.PropertyUtil.setProperties()
メソッドに渡され、org.apache.qpid.jms.JmsConnectionFactory
インスタンスを設定します。そうでない場合は、
org.apache.activemq.artemis.utils.uri.BeanSupport.setData()
がorg.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory
インスタンスに対して呼び出されます。IBM MQ
org.ops4j.pax.jms.ibmmq.MQConnectionFactoryFactory
com.ibm.mq.jms.MQConnectionFactory
またはcom.ibm.mq.jms.MQXAConnectionFactory
の Bean プロパティーが処理されます。