7.8.1 コネクションサービス
コネクションサービスは,TCP層上でのCJMSPブローカーとCJMSPリソースアダプタの接続(jmsコネクション),およびCJMSPブローカーとシステムの管理ユーザの接続(adminコネクション)を管理するためのサービスです。
(1) コネクションサービスの種類
CJMSプロバイダが提供するコネクションサービスには,次の2種類があります。
-
CJMSPリソースアダプタからCJMSPブローカーへの接続を管理するサービスです。メッセージを送受信する際,CJMSPリソースアダプタがCJMSPブローカーに接続するときにこのサービスを使用します。
-
システムの管理ユーザからCJMSPブローカーへの接続を管理するサービスです。管理ユーザがコマンドの実行によって次のような操作をする場合にこのサービスを使用します。
-
物理的送信先の作成
-
送信先またはCJMSPブローカーの問い合わせ
-
コネクションサービスでは,ポートマッパーによって静的または動的に割り当てられた,専用のポートを使用します。
ポートマッパーによるコネクションサービスへのポートの割り当ての概要を次の図に示します。
ポートマッパーは,デフォルトでは7676のポートを使用します。これ以外のポートを使用する場合は,CJMSPブローカーのimq.portmapper.portプロパティで設定してください。
ポートの割り当ての流れを次に示します。
-
ポートマッパーに対して,CJMSPリソースアダプタからjmsサービスでの接続をするためのリクエストを送信します。または管理ユーザからadminサービスでの接続をするためのリクエストを送信します。
-
ポートマッパーがコネクションサービスの要求に対して,ポートを動的に割り当てます。ただし,事前にCJMSPブローカーのプロパティとしてimq.jms.tcp.portプロパティまたはimq.admin.tcp.portプロパティを指定した場合は,コネクションサービスごとに指定したポートが割り当てられます。
なお,ポートマッパーがコネクションを接続するためのリクエストを複数同時に受け付けた場合,処理待ちのリクエストはOSのバックログに格納されて待機します。
コネクションサービスで使用する各プロパティの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「6.2.3 config.properties(CJMSPブローカー個別プロパティファイル)」を参照してください。
(2) コネクションサービスのスレッドプール管理
コネクションサービスはマルチスレッドで動作するため,複数のコネクションを同時に管理できます。コネクションサービスで使用するスレッドは,CJMSPブローカーが管理するスレッドプールで管理されています。
なお,コネクションサービスのスレッドプールは,処理性能を向上させるために,独自の方式で管理されています。一つのコネクションでは,メッセージ受信用および送信用の二つのスレッドを使用します。