第8章 メッセージングトランスポートの設定

ここでは、JBoss EAP メッセージングトランスポート (特にコネクターとアクセプター) を理解するために必要な概念について説明します。アクセプターは、サーバーが接続を許可する方法を定義するためにサーバーで使用されます。一方、コネクターはクライアントのサーバーへの接続方法を定義するためにクライアントで使用されます。それぞれの概念を順番に説明し、実用的な例として、クライアントが JNDI または Core API を使用した、JBoss EAP メッセージングサーバーへの接続方法を示します。

8.1. アクセプターおよびコネクターのタイプ

JBoss EAP の設定では、3 つの主要なタイプのアクセプターとコネクターが定義されています。

in-vm: In-vm は Intra Virtual Machine の省略形です。クライアントおよびサーバーの両方が同じ JVM で実行されている場合は、このコネクタータイプを使用します (例: Message Driven bean (MDB) が JBoss EAP の同じインスタンスで実行されている場合)。

http: クライアントとサーバーが異なる JVM で実行されている場合に使用します。undertow サブシステムのデフォルトのポートである 8080 を使用すると、HTTP による多重メッセージ通信が可能になります。Red Hat は、クライアントおよびサーバーが異なる JVM で実行されている場合、特にクラウド環境におけるポート管理などを考慮して、http コネクターを使用することを推奨します。

remote: リモートトランスポートは、クライアントとサーバーが異なる JVM で実行されている場合に、ネイティブ TCP 通信に使用される Netty ベースのコンポーネントです。このコンポーネントは http を使用できない場合の代替手段となります。

クライアントは、いずれかのサーバーのアクセプターと互換性のあるコネクターを使用する必要があります。たとえば、in-vm-connector のみが in-vm-acceptor に接続でき、http-connector のみが http-acceptor に接続できます。

管理 CLI の read-children-attributes 操作を使用すると、指定のアクセプターまたはコネクタータイプの属性を一覧表示できます。たとえば、デフォルトのメッセージングサーバーのすべての http-connectors の属性を表示するには、以下の入力を行います。

/subsystem=messaging-activemq/server=default:read-children-resources(child-type=http-connector,include-runtime=true)

同様のコマンドを使用して、すべての http-acceptors の属性を読み込みます。

/subsystem=messaging-activemq/server=default:read-children-resources(child-type=http-acceptor,include-runtime=true)

他のアクセプターおよびコネクタータイプは同じ構文に従います。child-typeremote-connectorin-vm-acceptor などのアクセプタータイプまたはコネクタータイプを指定するだけです。