第32章 後方互換性と前方互換性
JBoss EAP は JBoss EAP 6 のように HornetQ をメッセージングブローカーとして使用していた古いバージョンの JBoss EAP との後方互換性および前方互換性をサポートしています。この 2 つの互換性モードは、HornetQ のコアプロトコルをサポートする、JBoss EAP の組み込みメッセージングサーバーの ActiveMQ Artemis によって提供されます。
32.1. 前方互換性 リンクのコピーリンクがクリップボードにコピーされました!
前方互換性では、レガシー JBoss EAP 6 の JMS クライアントへのコード変更は必要ありません。サポートは JBoss EAP messaging-activemq サブシステムおよびそのリソースによって提供されます。前方互換性のサポートを有効にするには、JBoss EAP 7 サーバーの設定に以下の変更を行います。手順ごとに、スタンドアロンサーバーの管理 CLI コマンドの例を示します。
リモートレガシークライアントのポート 4447 でリッスンする
socket-bindingを作成します。/socket-binding-group=standard-sockets/socket-binding=legacy-remoting:add(port=4447)
/socket-binding-group=standard-sockets/socket-binding=legacy-remoting:add(port=4447)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順で作成した
socket-bindingを使用するレガシーremote-connectorを作成します。これは JNDI ルックアップに必要です。/subsystem=remoting/connector=legacy-remoting-connector:add(socket-binding=legacy-remoting)
/subsystem=remoting/connector=legacy-remoting-connector:add(socket-binding=legacy-remoting)Copy to Clipboard Copied! Toggle word wrap Toggle overflow ポート 5445 でリッスンするレガシーメッセージング
socket-bindingを設定します。/socket-binding-group=standard-sockets/socket-binding=legacy-messaging:add(port=5445)
/socket-binding-group=standard-sockets/socket-binding=legacy-messaging:add(port=5445)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前の手順のバインディングを使用する
messaging-activemqサブシステムにremote-connectorとremote-acceptorを設定します。/subsystem=messaging-activemq/server=default/remote-connector=legacy-messaging-connector:add(socket-binding=legacy-messaging) /subsystem=messaging-activemq/server=default/remote-acceptor=legacy-messaging-acceptor:add(socket-binding=legacy-messaging)
/subsystem=messaging-activemq/server=default/remote-connector=legacy-messaging-connector:add(socket-binding=legacy-messaging) /subsystem=messaging-activemq/server=default/remote-acceptor=legacy-messaging-acceptor:add(socket-binding=legacy-messaging)Copy to Clipboard Copied! Toggle word wrap Toggle overflow messaging-activemqサブシステムのlegacy-connection-factory要素にレガシー HornetQ JMS ConnectionFactory を作成します。/subsystem=messaging-activemq/server=default/legacy-connection-factory=legacy-discovery:add(entries=[java:jboss/exported/jms/LegacyRemoteConnectionFactory], connectors=[legacy-messaging-connector])
/subsystem=messaging-activemq/server=default/legacy-connection-factory=legacy-discovery:add(entries=[java:jboss/exported/jms/LegacyRemoteConnectionFactory], connectors=[legacy-messaging-connector])Copy to Clipboard Copied! Toggle word wrap Toggle overflow レガシー HornetQ JMS 宛先を作成し、
legacy-entries属性をjms-queueまたはjms-topicリソースに含めます。jms-queue add --queue-address=myQueue --entries=[java:jboss/exported/jms/myQueue-new] --legacy-entries=[java:jboss/exported/jms/myQueue] jms-topic add --topic-address=myTopic --entries=[java:jboss/exported/jms/myTopic-new] --legacy-entries=[java:jboss/exported/jms/myTopic]
jms-queue add --queue-address=myQueue --entries=[java:jboss/exported/jms/myQueue-new] --legacy-entries=[java:jboss/exported/jms/myQueue] jms-topic add --topic-address=myTopic --entries=[java:jboss/exported/jms/myTopic-new] --legacy-entries=[java:jboss/exported/jms/myTopic]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例に従って、既存のキューまたはトピックに
legacy-entriesを追加できます。/subsystem=messaging-activemq/server=default/jms-queue=myQueue:write-attribute(name=legacy-entries,value=[java:jboss/exported/jms/myQueue])
/subsystem=messaging-activemq/server=default/jms-queue=myQueue:write-attribute(name=legacy-entries,value=[java:jboss/exported/jms/myQueue])Copy to Clipboard Copied! Toggle word wrap Toggle overflow entries属性が JBoss EAP メッセージング JMS クライアントによって使用されるのに対して、legacy-entriesはレガシー HornetQ JMS クライアントによって使用されます。レガシー JMS クライアントは、このレガシー JMS リソースを検索し、JBoss EAP 7 と通信します。注記レガシー JMS クライアントでのコード変更を回避するには、
messaging-activemqサブシステムに設定されたレガシー JNDI エントリーが、レガシー JMS クライアントによって想定されるルックアップと一致する必要があります。
管理 CLI の移行操作
管理 CLI の migrate 操作を実行して messaging サブシステム設定を更新する場合、ブール値の引数 add-legacy-entries が true に設定されていると、messaging-activemq サブシステムは legacy-connection-factory リソースを作成し、legacy-entries を jms-queue および jms-topic リソースに追加します。移行された messaging-activemq サブシステムのレガシーエントリーは、レガシー messaging サブシステムに指定されたエントリーに対応し、通常のエントリーは -new 接尾辞を付加して作成されます。
migrate 操作の実行時にブール値の引数 add-legacy-entries が false に設定されていると、messaging-activemq サブシステムにはレガシーリソースが作成されず、レガシー JMS クライアントは JBoss EAP 7 サーバーと通信できません。