メッセージブローカは、接続サービスを使用してアプリケーションと、メッセージブローカの管理をサポートします。
メッセージブローカは、次に示す2つの接続サービスを提供します。
メッセージブローカの管理を実施します。
JMSが提供するコマンドからの要求を、TCPを介して受け付けます。
JMSのメッセージ配信処理を実施します。
Interstage Java EE DASサービス/IJServerクラスタからの要求、およびクライアントアプリケーションからの送受信要求を、TCPを介して受け付けます。
スレッドプール管理
接続サービスは、複数のコネクションをサポートするため、マルチスレッドで動作します。これらの接続に必要なスレッドは、メッセージブローカにより、admin接続サービス/jms接続サービスごとに別のスレッドプールで管理されます。
接続サービスは、接続要求を受け付けると、スレッドプールからスレッドを取得します。
スレッドが存在しない場合は、必要な数だけスレッドを作成して処理を開始します。
処理完了後、取得/作成したスレッドは削除されず、スレッドプールに返却されます。
注意
メッセージブローカの起動直後は、スレッドプールにスレッドは存在しません。
このため、接続サービスが管理するスレッド数は、最小スレッド数より少ない場合があります。
最大スレッド数を超えたスレッドは、作成できません。
現在利用されているスレッド数が最大スレッド数に達している場合は、現在利用されているスレッドがスレッドプールに返却されるまで、新しい要求を拒否します。
接続サービスが管理するスレッド数が、最小スレッド数より多い場合は、スレッドプールに返却されてから一定時間を経過しても使用されないスレッドを破棄します。
メッセージブローカ上でのスレッドプール管理のスレッドモデルには、以下の2種類があります。
メッセージブローカへのコネクションごとに、2つのスレッド(受付用と配信用)を作成します。これにより、JMSクライアント数に対するコネクション数は、共有モデルよりも多く作成されるため、JMSクライアント数が制限されますが、パフォーマンスは向上します。
メッセージ送受信は、共有スレッドによって処理されます。コネクションごとに専用スレッドが必要ないため、専用モデルと比較してJMSクライアント数が増加しますが、スレッド管理に追加のオーバーヘッドが必要であるため、パフォーマンスは低下します。
スレッドプール管理のスレッドモデルは、メッセージブローカ起動時に、接続サービスに関するプロパティのthreadpool_modelプロパティで設定します。
参照
スレッドプールでは、管理するスレッドの最小スレッド数と最大スレッド数を、接続サービスに関するプロパティのmin_threadsプロパティとmax_threadsプロパティに設定します。
スレッドプールに関するプロパティの詳細については、「6.7.1 接続サービスに関するプロパティ」を参照してください。