メッセージ駆動型 Bean が永続サブスクリプションを介してキューまたはトピックにマップされる (つま
り、listen する) と、JMS メッセージはまず WebSphere サーバーのコントローラーに入ります。
これを、サーバーがこれらのメッセージを「コントローラー内で listen している」といいます。
メッセージは、到着すると、一連のイベント間を移動します。
メッセージが、実行中のメッセージ駆動型 Bean が listen する JMS 宛先 (キューまたはトピック) に到着すると、
以下の一連のイベントが発生します。
- WebSphere MQ JMS キュー・エージェント・スレッド (コントローラー内で実行中) は、
JMS 宛先を参照します。
キュー・エージェントは、その宛先のメッセージ駆動型 Bean が実行されているアプリケーション・サーバーを識別します。
キュー・エージェントは、アプリケーション・サーバーによって登録されたメッセージ参照ハンドラー (MRH) を呼び出し、
サーバーに対して、メッセージ駆動型 Bean のうち 1 つが listen している宛先にメッセージが到着したことを通知します。
このメッセージに対応するメッセージ参照は、MRH の呼び出しとともに送信されます。
- スロットルの上限しきい値 (以下を参照) を超えていない場合、
参照したばかりのメッセージに対応する作業要求は、コントローラー内の WLM キューに入れられます。
- 作業要求は、個々のサーバントにディスパッチされます。
ServerSession はそのサーバント内の該当する ServerSessionPool から取得され
、メッセージ参照を索引として使用することにより、メッセージが JMS 宛先から破壊的にコンシュームされます。
- MDB アプリケーションの onMessage(Message) メソッドは、コンシュームされたメッセージとともにディスパ
ッチされ
ます。
- onMessage(Message) メソッドが完了すると、サーバントはコントローラーに対して、作業レコードが完了したことを通知します。