7.6. 接続ファクトリーのアーティファクトとしてのデプロイ
このトピックでは、実際の推奨事項について説明します。
デプロイメント方法 では、javax.jms.ConnectionFactory
サービスはアプリケーションコードによって直接登録されます。通常、このコードは Blueprint コンテナー内にあります。Blueprint XML は、通常の OSGi バンドルの一部である可能性があり、mvn:
URI を使用してインストールでき、Maven リポジトリー (ローカルまたはリモート) に保存されます。Configuration Admin 設定と比較して、このようなバンドルのバージョン管理は簡単です。
pax-jms-config
バージョン 1.0.0 バンドルは、接続ファクトリー設定の デプロイメント方法 を追加します。アプリケーション開発者は (通常 Bluerpint XML を使用して) javax.jms.(XA)ConnectionFactory
サービスを登録し、サービスプロパティーを指定します。次に、pax-jms-config
は、登録されたブローカー固有の接続ファクトリーを検出し、(サービスプロパティーを使用して) 汎用のブローカー固有でない接続プール内でサービスをラップします。
以下は、Blueprint XML を使用する 3 つの デプロイメント方法 です。
7.6.1. 接続ファクトリーの手動デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
この方法では、pax-jms-config
バンドルは必要ありません。アプリケーションコードは、ブローカー固有および汎用接続プールの両方の登録を行います。
以下は、その使用方法を示すシェルコマンドです。
上記の一覧に示すように、Blueprint バンドルは、汎用的でブローカー固有でない接続プールである javax.jms.ConnectionFactory
サービスをエクスポートします。Blueprint XML には明示的な <service ref="artemis">
宣言がないため、ブローカー固有の javax.jms.XAConnectionFactory
は OSGi サービスとして登録されません。
7.6.2. 接続ファクトリーのファクトリーデプロイメント リンクのコピーリンクがクリップボードにコピーされました!
このメソッドは、標準 の方法での pax-jms-config
の使用方法を示しています。これは、Fuse 6.x で推奨されていた方法とは少し異なります。この方法では、サービスプロパティーとしてプーリング設定を指定する必要がありました。
Blueprint XML の例を以下に示します。
前述の例は、接続ファクトリーのファクトリーを使用して、接続ファクトリーを作成するファクトリー Bean を使用します。XA 対応の PooledConnectionFactoryFactory
によって内部的に追跡されるため、javax.transaction.TransactionManager
サービスを明示的に参照する必要はありません。
Fuse/Karaf シェルでは、以下のようになります。
上記の一覧に示すように、Blueprint バンドルは、汎用的でブローカー固有でない接続プールである javax.jms.ConnectionFactory
サービスをエクスポートします。Blueprint XML には明示的な <service ref="artemis">
宣言がないため、ブローカー固有の javax.jms.XAConnectionFactory
は OSGi サービスとして登録されません。
7.6.3. 接続ファクトリーの混合デプロイメント リンクのコピーリンクがクリップボードにコピーされました!
pax-jms-config
1.0.0 バンドルは、サービスプロパティーを使用して、プーリング接続ファクトリー内にブローカー固有の接続ファクトリーを ラッピング する別の方法を追加します。このメソッドは、Fuse 6.x での作業に使用した方法と同じです。
Blueprint XML の例を以下に示します。
上記の例では、ブローカー固有の接続ファクトリーのみを手動で登録できます。pool=pooledjms
サービスプロパティーは、pax-jms-config
バンドルによって管理される接続ファクトリートラッカーのヒントです。このサービスプロパティーを持つ接続ファクトリーサービスは、プール接続ファクトリー内でラップされます (この例では pax-jms-pool-pooledjms
。
Fuse/Karaf シェルでは、以下のようになります。
前述の例では、このコマンドは重複した名前を削除するため、jms:connectionfactories
は 1 つのサービスのみを示しています。データソースの混合デプロイメントにおいて、2 つのサービスが jdbc:ds-list
によって表されました。
javax.jms.XAConnectionFactory
は Blueprint バンドルから登録され、pool = pooledjms
プロパティーが宣言されています。
javax.jms.ConnectionFactory
は pax-jms-config
バンドルから登録されます。また、
-
pool = pooledjms
プロパティーがありません。ラッパー接続ファクトリーの登録時に削除されました。 -
service.ranking = 1000
プロパティーがあるため、名前で接続ファクトリーを検索する場合など、常に優先されるバージョンになります。 -
pax.jms.managed = true
プロパティーがあるので、再度ラップが試行されていません。 -
これには、接続プール内でラップされる元の接続ファクトリーサービスを示す
pax.jms.service.id.ref = 349
プロパティーがあります。