各コネクションサービスは、複数のコネクションをサポートするマルチスレッドです。これらのコネクションに必要なスレッドは、プール内のブローカによって保持されます。スレッドの割り当て方法は、スレッドの最小数および最大数に指定した値、および選択したスレッドモデルによって決まります。
ブローカのプロパティーを設定してスレッドの最小数および最大数を指定できます。コネクションでスレッドが必要になると、コネクションをサポートするサービスのスレッドプールにスレッドが追加されます。最小数では、割り当てに使用できるスレッドの数を指定します。使用可能なスレッドの数がこの最小しきい値を超えると、システムはスレッドをシャットダウンします。スレッドは最小値に再び達するまで解放されるため、メモリーリソースが節約されます。負荷が大きい場合、プールの最大数に達するまでスレッドの数が増加する可能性があります。最大数に達すると、スレッドが使用可能になるまで新しい接続は拒否されます。
選択したスレッドモデルにより、スレッドが 1 つのコネクション専用か複数のコネクションで共有されるかが指定されます。
専用モデルでは、ブローカへのコネクションごとに 2 つのスレッドが必要になります。1 つは受信メッセージ用で、1 つは送信メッセージ用です。これにより、使用可能なコネクション数が制限されますがパフォーマンスが向上します。
共有モデルでは、メッセージを送受信するときに共有スレッドによってコネクションが処理されます。各コネクションに専用のスレッドが必要ないので、このモデルでは使用可能なコネクションの数が増加しますが、スレッド管理のオーバーヘッドが増えるためにパフォーマンスに影響します。