メッセージブローカは、接続サービスを使用してアプリケーションと、メッセージブローカの管理をサポートします。
メッセージブローカは、次に示す2つの接続サービスを提供します。
メッセージブローカの管理を実施します。
JMSが提供するコマンドからの要求を、TCPを介して受け付けます。
JMSのメッセージ配信処理を実施します。
クライアントアプリケーションからの送受信要求を、TCPを介して受け付けます。
スレッドプール管理
接続サービスは、複数のコネクションをサポートするためマルチスレッドで動作します。これらの接続に必要なスレッドは、ブローカによって、サービスごとに個別のスレッドプールに保存されます。
接続にスレッドが必要な場合に、その接続をサポートするサービスのスレッドプールにスレッドを追加します。
メッセージブローカ上でのスレッドプール管理のモデルには、以下の2種類があります。
メッセージブローカへのコネクションごとに、2つのスレッド(受付用と配信用)を作成します。これによって、JMSクライアント数に対するコネクション数は、共有モデルよりも多く作成されるため、JMSクライアント数が制限されますが、パフォーマンスは向上します。
メッセージ送受信は、共有スレッドによって処理されます。コネクションごとに専用スレッドが必要ないため、専用モデルと比較してJMSクライアント数が増加しますが、それと引き換えに、スレッド管理に追加のオーバーヘッドが必要なため、パフォーマンスが低下します。
スレッドプール管理のモデルは、メッセージブローカ起動時に、接続サービスに関するプロパティのthreadpool_modelプロパティで設定します。
スレッドプールでは管理するスレッドの最小スレッド数と最大スレッド数を設定できます。使用可能なスレッド数が設定した最小値を下回った場合、そのスレッドの解放と同時にスレッドを終了してメモリリソースを節約します。最大数に達した場合は、スレッドが利用可能になるまで、新しい要求は拒否されます。
最小スレッド数と最大スレッド数は、接続サービスに関するプロパティのmin_threadsとmax_threadsプロパティで設定します。
スレッドプールに関するプロパティの詳細については、「9.7.1 接続サービスに関するプロパティ」を参照してください。