検索

第7章 JMS 接続ファクトリーの作成

download PDF

本章では、OSGi で JMS 接続ファクトリーを使用する方法を説明します。基本的に、以下を使用して実行します。

org.osgi.framework.BundleContext.registerService(javax.jms.ConnectionFactory.class,
                                                 connectionFactoryObject,
                                                 properties);
org.osgi.framework.BundleContext.registerService(javax.jms.XAConnectionFactory.class,
                                                 xaConnectionFactoryObject,
                                                 properties);

このようなサービスを登録する方法は 2 つあります。

  • jms:create Karaf コンソールコマンドを使用して接続ファクトリーを公開します。これは、設定メソッド です。
  • Blueprint、OSGi Declarative Services (SCR)、または BundleContext.registerService() API 呼び出しなどのメソッドを使用して接続ファクトリーをパブリッシュします。この方法では、コードやメタデータを含む専用の OSGi バンドルが必要です。これが、デプロイメントの方法 です。

詳細は以下を参照してください。

7.1. OSGi JMS サービスについて

JDBC データソースを処理する OSGi 方法は、次の 2 つのインターフェイスに関連します。

  • standard org.osgi.service.jdbc.DataSourceFactory
  • proprietary org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory

JMS の場合、以下の推測を考慮します。

  • プロプライエタリー org.ops4j.pax.jms.service.ConnectionFactoryFactory: 標準の OSGi JDBC org.osgi.service.jdbc.DataSourceFactory と同じ目的。
  • プロプライエタリー org.ops4j.pax.jms.service.PooledConnectionFactoryFactory: プロプライエタリー pax-jdbc org.ops4j.pax.jdbc.pool.common.PooledDataSourceFactory と同じ目的。

専用のブローカー固有の org.ops4j.pax.jms.service.ConnectionFactoryFactory 実装には、以下のようなバンドルがあります。

  • mvn:org.ops4j.pax.jms/pax-jms-artemis/1.0.0
  • mvn:org.ops4j.pax.jms/pax-jms-ibmmq/1.0.0
  • mvn:org.ops4j.pax.jms/pax-jms-activemq/1.0.0

これらのバンドルは、ブローカー固有の org.ops4j.pax.jms.service.ConnectionFactoryFactory サービスを登録します。これは、javax.jms.ConnectionFactoryjavax.jms.XAConnectionFactory など、JMS ファクトリー を返すことができます。以下に例を示します。

karaf@root()> feature:install pax-jms-artemis

karaf@root()> bundle:services -p org.ops4j.pax.jms.pax-jms-config

OPS4J Pax JMS Config (248) provides:
------------------------------------
objectClass = [org.osgi.service.cm.ManagedServiceFactory]
service.bundleid = 248
service.id = 328
service.pid = org.ops4j.connectionfactory
service.scope = singleton

karaf@root()> bundle:services -p org.ops4j.pax.jms.pax-jms-artemis

OPS4J Pax JMS Artemis Support (247) provides:
---------------------------------------------
objectClass = [org.ops4j.pax.jms.service.ConnectionFactoryFactory]
service.bundleid = 247
service.id = 327
service.scope = singleton
type = artemis
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.