7.2. PAX-JMS 設定サービス
mvn:org.ops4j.pax.jms/pax-jms-config/1.0.0 バンドルは、以下の 3 つを行う Managed Service Factory を提供します。
org.ops4j.pax.jms.service.ConnectionFactoryFactoryOSGi サービスを追跡し、そのメソッドを呼び出します。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-Allor9.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 での JBossA-MQ6.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を使用します。接続ファクトリーはユーザー名/パスワードの認証情報で admin/admin を使用するよう設定されています。このユーザーがブローカーの設定で有効にされていることを確認します (または、ここでこれらの設定をブローカー設定に合わせてカスタマイズすることもできます)。-
camel-context.xmlファイルを保存します。 camel-jmsクイックスタートをビルドします。cd quickstarts/camel/camel-jms mvn install
$ cd quickstarts/camel/camel-jms $ mvn installCopy to Clipboard Copied! Toggle word wrap Toggle overflow クイックスタートが正常にインストールされた後、
$FUSE_HOME/ディレクトリーに移動し、以下のコマンドを実行して Fuse on Apache Karaf サーバーを起動します。./bin/fuse
$ ./bin/fuseCopy 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-jmsCopy 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/amqCopy 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/frorder1.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/frCopy to Clipboard Copied! Toggle word wrap Toggle overflow log:displayを使用してビジネスロギングを確認します。Receiving order order1.xml Sending order order1.xml to another country Done processing order1.xmlReceiving order order1.xml Sending order order1.xml to another country Done processing order1.xmlCopy 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.ArtemisConnectionFactoryFactoryprotocol=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.MQConnectionFactoryFactorycom.ibm.mq.jms.MQConnectionFactoryまたはcom.ibm.mq.jms.MQXAConnectionFactoryの Bean プロパティーが処理されます。