31.4. リモート Artemis ベースのブローカーの Jakarta Messaging リソース設定
管理 CLI から、@JMSConnectionFactoryDefinition アノテーションまたは @JMSDestinationDefinition アノテーションを使用して、Red Hat AMQ 7 などのリモート Artemis ベースのブローカーの Jakarta Messaging リソースを設定できます。管理コンソールからリソースを設定することもできます。
リモート ActiveMQ サーバーリソースは、Artemis のローカルインスタンスを必要としません。これにより、JBoss EAP イメージのメモリーと CPU フットプリントが削減されます。
31.4.1. JMSConnectionFactoryDefinition アノテーションを使用した Jakarta Messaging リソース設定 リンクのコピーリンクがクリップボードにコピーされました!
JBoss EAP は @JMSConnectionFactoryDefinition アノテーションを使用して接続ファクトリーを定義します。この接続ファクトリーは、ローカルまたはリモートの Artemis ブローカーに接続できます。@JMSConnectionFactoryDefinition アノテーションの resourceAdapter 要素は、リモート Artemis ブローカーに接続できる messaging-subsystem に定義される pooled-connection-factory の名前を参照します。resourceAdapter 要素は、接続ファクトリーの作成に使用されるリソースアダプター、または接続ファクトリーが定義されるリソースアダプターを定義します。
resourceAdapter 要素が @JMSConnectionFactoryDefinition アノテーションに定義されていない場合、messaging-activemq サブシステムはデフォルトで接続ファクトリーの JNDI 名を使用します。これは、デフォルトのバインディングとして知られています。デフォルトのバインディングは、/subsystem=ee/service=default-bindings の jms-connection-factory 属性を使用して定義されます。resourceAdapter 要素が指定されているか、 jms-connection-factory のデフォルトのバインディングから定義できる場合、およびリモートブローカーへの pooled-connection-factory である場合、リモートブローカーへの接続に使用できます。
resourceAdapter が messaging-activemq サブシステムに定義されていない場合、または jms-connection-factory のデフォルトのバインディングから取得できない場合、Jakarta Messaging リソースの作成タスクは、リソースアダプターの admin-objects および connection-definitions リソースに基づいて resource-adapters サブシステムに委任されます。
以下のセクションでは、@JMSConnectionFactoryDefinition アノテーションを設定して使用する方法の例を紹介します。
デフォルトのリソースアダプターを使用した @JMSConnectionFactoryDefinition の設定
リモートインスタンスへのソケットバインディングを作成します。
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=messaging-remote-throughput:add(host=127.0.0.2, port=5445)コネクターを作成します。
/subsystem=messaging-activemq/remote-connector=remote-amq:add(socket-binding="messaging-remote-throughput")プールされた接続ファクトリーを作成します。
/subsystem=messaging-activemq/pooled-connection-factory=activemq-ra-remote:add(entries=["java:/jms/remote-amq/JmsConnectionFactory"],connectors=["remote-amq"]eeサブシステムのデフォルトの Jakarta Messaging 接続ファクトリーを定義します。/subsystem=ee/service=default-bindings:write-attribute(name=jms-connection-factory, value="java:/jms/remote-amq/JmsConnectionFactory")アプリケーションコードで
@JMSConnectionFactoryDefinitionアノテーションを使用します。@JMSConnectionFactoryDefinition(name="java:/jms/remote-amq/JmsConnectionFactory")
リモート Artemis ブローカーを使用した @JMSConnectionFactoryDefinition の設定
コネクターを作成します。
/subsystem=messaging-activemq/remote-connector=remote-amq:add(socket-binding="messaging-remote-throughput")プールされた接続ファクトリーを作成します。
/subsystem=messaging-activemq/pooled-connection-factory=activemq-ra-remote:add(entries=["java:/jms/remote-amq/JmsConnectionFactory"],connectors=["remote-amq"])eeサブシステムのデフォルトの Jakarta Messaging 接続ファクトリーを定義します。/subsystem=ee/service=default-bindings:write-attribute(name=jms-connection-factory, value="java:/jms/remote-amq/JmsConnectionFactory")アプリケーションコードで
@JMSConnectionFactoryDefinitionアノテーションを使用します。@JMSConnectionFactoryDefinition( name="java:app/myCF" resourceAdapter="myPCF" )
サードパーティー JMS リソースアダプターを使用した @JMSConnectionFactoryDefinition の設定
コネクターを作成します。
/subsystem=messaging-activemq/remote-connector=remote-amq:add(socket-binding="messaging-remote-throughput")プールされた接続ファクトリーを作成します。
/subsystem=messaging-activemq/pooled-connection-factory=activemq-ra-remote:add(entries=["java:/jms/remote-amq/JmsConnectionFactory"],connectors=["remote-amq"])eeサブシステムのデフォルトの Jakarta Messaging 接続ファクトリーを定義します。/subsystem=ee/service=default-bindings:write-attribute(name=jms-connection-factory, value="java:/jms/remote-amq/JmsConnectionFactory")アプリケーションコードで
@JMSConnectionFactoryDefinitionアノテーションを使用します。@JMSConnectionFactoryDefinition( name="java:app/myCF" resourceAdapter="wsmq" )
31.4.2. JMSDestinationDefinition アノテーションを使用した Jakarta Messaging リソース設定 リンクのコピーリンクがクリップボードにコピーされました!
サーバーリソースを使用して、ローカルブローカーへの pooled-connection-factory に必要な宛先を作成できます。
resourceAdapter 要素が pooled-connection-factory 名を指し、ローカルブローカー (例: /subsystem/messaging-activemq/server=default) に定義されている場合、ローカル Artemis ブローカーに宛先を作成します。
リモート Artemis ベースのブローカーに宛先を作成する必要がある場合は、pooled-connection-factory を messaging-activemq サブシステムに定義する必要があります。
@JMSDestinationDefinition アノテーションに設定された resourceAdapter が、messaging-activemq サブシステムの server に定義された resourceAdapter 要素と一致する場合、pooled-connection-factory のコネクターがローカル Artemis ブローカーを指すか、リモート Artemis ブローカーを指すかに関係なく、このブローカーに宛先が作成されます。
JMSDestinationDefinition アノテーションを使用した Jakarta Messaging リソースの設定
コネクターを作成します。
/subsystem=messaging-activemq/remote-connector=remote-amq:add(socket-binding="messaging-remote-throughput")プールされた接続ファクトリーを作成します。
/subsystem=messaging-activemq/pooled-connection-factory=activemq-ra-remote:add(entries=["java:/jms/remote-amq/JmsConnectionFactory"],connectors=["remote-amq"])eeサブシステムのデフォルトの Jakarta Messaging 接続ファクトリーを定義します。/subsystem=ee/service=default-bindings:write-attribute(name=jms-connection-factory, value="java:/jms/remote-amq/JmsConnectionFactory")アプリケーションコードに
@JMSDestinationDefinitionアノテーションを使用します。@JMSDestinationDefinition( name = "java:/jms/queue/MessageBeanQueue", interfaceName = "javax.jms.Queue", destinationName = "MessageBeanQueue" properties= { "management-address=remote-activemq.management" } )
31.4.3. 管理コンソールを使用したリモート ActiveMQ サーバーリソースの設定 リンクのコピーリンクがクリップボードにコピーされました!
管理コンソールから以下のリモート ActiveMQ サーバーリソースを設定できます。
- 汎用コネクター
- VM コネクターで
- HTTP コネクター
- リモートコネクター
- 検出グループ
- 接続ファクトリー
- プールされた接続ファクトリー
- 外部 JMS キュー
- 外部 JMS トピック
管理コンソールからのリモート ActiveMQ サーバーリソースを設定するには、以下を行います。
-
管理コンソールにアクセスし、設定
サブシステム Messaging (ActiveMQ) リモート ActiveMQ Server を選択し、表示をクリックします。 - ナビゲーションペインで、設定するリソースをクリックします。