8.4. アクセプターとコネクターの設定

コネクターとアクセプターには複数の設定オプションがあります。こうしたオプションは、設定の子要素 <param> として表示されます。<param> の各要素には、コネクターまたはアクセプターをインスタンス化するデフォルトの Netty ベースのファクトリークラスによって認識され、使用される namevalue の属性ペアが含まれています。

管理 CLI では、各リモートコネクターまたはアクセプターの要素に、パラメーターの名前と値のペアの内部マップが含まれます。たとえば、myRemote という名前の remote-connector に新しい param を追加するには、以下のコマンドを使用します。

/subsystem=messaging-activemq/server=default/remote-connector=myRemote:map-put(name=params,key=foo,value=bar)

同様の構文を使用してパラメーター値を取得します。

/subsystem=messaging-activemq/server=default/remote-connector=myRemote:map-get(name=params,key=foo)
{
    "outcome" => "success",
    "result" => "bar"
}

また、アクセプターまたはコネクターを作成する際に、以下の例のようにパラメーターを含めることもできます。

/subsystem=messaging-activemq/server=default/remote-connector=myRemote:add(socket-binding=mysocket,params={foo=bar,foo2=bar2})

表8.1 トランスポート設定プロパティー

プロパティー説明

batch-delay

パケットをトランスポートに書き込む前に、メッセージングサーバーは batch-delay (ミリ秒単位) を上限として書き込みを一括処理するよう設定できます。これにより、メッセージ転送の平均待ち時間が長くなり、非常に小さいメッセージのスループットの合計が増加します。デフォルトは 0 です。

direct-deliver

メッセージがサーバーに到達し、待機しているコンシューマーに配信されると、デフォルトでは、メッセージが到達した同じスレッドで配信が実行されます。これにより、メッセージが比較的小さく、コンシューマーの数が少ない環境では適切な待ち時間になりますが、スループットと待ち時間は低減されます。スループットを最大限にする場合は、このプロパティーを false に設定します。デフォルトは true です。

http-upgrade-enabled

http-connector で使用され、HTTP アップグレードを使用しているため HTTP のメッセージングトラフィックを多重化することを指定します。このプロパティーは、http-connector が作成され、管理者を必要としない場合、JBoss EAP によって自動的に true に設定されます。

http-upgrade-endpoint

http-connector が接続するサーバー側の http-acceptor を指定します。コネクターは HTTP で多重化されます。HTTP アップグレードの後に関連する http-acceptor を見つけるために、コネクターはこの情報を必要とします。このプロパティーは、http-connector が作成され、管理者を必要としない場合、JBoss EAP によって自動的に設定されます。

local-address

http コネクターまたはリモートコネクターについて、リモートアドレスへの接続時にクライアントが使用するローカルアドレスを指定するために使用されます。ローカルアドレスが指定されていない場合、コネクターは利用可能なローカルアドレスを使用します。

local-port

http コネクターまたはリモートコネクターについて、リモートアドレスへの接続時にクライアントが使用するローカルポートを指定するために使用されます。local-port のデフォルトに (0) が使用される場合、コネクターによりシステムで一時ポートを取得することが許可されます。有効なポートの値は 0 から 65535 です。

nio-remoting-threads

NIO を使用するように設定されている場合、メッセージングはデフォルトで受信パケットを処理するために Runtime.getRuntime().availableProcessors() によって報告されるコア (または hyper-threads) の数の 3 倍のスレッドを使用します。この値をオーバーライドするには、スレッド数にカスタム値を設定できます。デフォルトは -1 です。

tcp-no-delay

true の場合、Nagle アルゴリズムが有効になります。このアルゴリズムによりネットワーク上で送信されるパケット数が減少し、TCP/IP ネットワークの効率を向上させることができます。デフォルトは true です。

tcp-send-buffer-size

このパラメーターにより、バイト単位で TCP 送信バッファーのサイズが決まります。デフォルトは 32768 です。

tcp-receive-buffer-size

このパラメーターは、バイト単位で TCP 受信バッファーのサイズを指定します。デフォルトは 32768 です。

use-nio-global-worker-pool

このパラメーターにより、各コネクションに独自のプールを持つのではなく、すべての JMS 接続で Java スレッドの 1 つのプールを共有します。これは、オペレーティングシステムのプロセスの最大数を使い切らないようにするためのものです。デフォルトは true です。