メッセージブローカは、接続サービスを使用してアプリケーションと、メッセージブローカの管理をサポートします。
メッセージブローカは、次に示す接続サービスを提供します。
admin接続サービス
メッセージブローカの管理を実施します。
以下からの要求をTCP通信を介して受け付けます。
JMSが提供するimqcmdコマンド
jms接続サービス
JMSのメッセージ配信処理を実施します。
以下からのメッセージの送受信要求をTCP通信を介して受け付けます。
Interstage Java EE 6 DASサービス/IJServerクラスタで動作する以下のアプリケーション
Webアプリケーション
EJBアプリケーション
クライアントアプリケーションが動作する以下のアプリケーション
Java EEアプリケーションクライアントコンテナ
Java SEスタンドアロンアプリケーション
以下からのメッセージの送受信要求をTCP通信を介して受け付けます。
クライアントアプリケーションが動作する以下のアプリケーション
Java EEアプリケーションクライアントコンテナ
Java SEスタンドアロンアプリケーション
jmsdirect接続サービス
JMSのメッセージ配信処理を実施します。
本接続サービスは使用できません。
以下からのメッセージの送受信要求をTCP通信を介さずに受け付けます。
Interstage Java EE 6 DASサービスで動作する以下のアプリケーション
Webアプリケーション
EJBアプリケーション
メッセージブローカの運用形態ごとに各接続サービスを図示します。
■メッセージブローカをREMOTE運用している場合
■Interstage Java EE 6 DASサービスのメッセージブローカをEMBEDDED運用している場合
スレッドプール管理
admin接続サービスおよびjms接続サービスは、TCP通信を介してメッセージの送受信要求を受け付けます。そのため、スレッドプールを使用してマルチスレッドで要求を処理します。これらの接続に必要なスレッドは、メッセージブローカにより、接続サービスごとに別のスレッドプールで管理されます。
jmsdirect接続サービスは、TCP通信を介さずにInterstage Java EE 6 DASサービスから直接要求を受け付けるため、スレッドプールを使用しません。
スレッドプールで管理するスレッドのモデルは、専用モデルです。
メッセージブローカへのコネクションごとに、2つのスレッド(受付用と配信用)を作成します。
接続サービスは、接続要求を受け付けると、スレッドプールからスレッドを取得します。
スレッドが存在しない場合は、必要な数だけスレッドを作成して処理を開始します。
処理完了後、取得/作成したスレッドは削除されず、スレッドプールに返却されます。
注意
メッセージブローカの起動直後は、スレッドプールにスレッドは存在しません。
このため、接続サービスが管理するスレッド数は、最小スレッド数より少ない場合があります。
最大スレッド数を超えたスレッドは、作成できません。
現在利用されているスレッド数が最大スレッド数に達している場合は、現在利用されているスレッドがスレッドプールに返却されるまで、新しい要求を拒否します。
接続サービスが管理するスレッド数が、最小スレッド数より多い場合は、スレッドプールに返却されてから一定時間を経過しても使用されないスレッドを破棄します。
参照
スレッドプールでは、管理するスレッドの最小スレッド数と最大スレッド数を、接続サービスに関するプロパティのmin_threadsプロパティとmax_threadsプロパティに設定します。
スレッドプールに関するプロパティの詳細については、「7.6.1 接続サービスに関するプロパティ」を参照してください。