Sun Java System Message Queue 3.7 UR1 技術の概要

システム全体でのメッセージの流れ

これまで示してきた説明のまとめとして、ここでは、Message Queue サービスで、どのようにメッセージがプロデューサからコンシューマへ配信されているかついて説明します。全体像を理解するため、さらに説明する必要があります。配信の過程でシステムが処理するメッセージは、次の 2 つのカテゴリに分類されます。

図 2–7 に、メッセージ配信を示します。

図 2–7 メッセージ配信手順

図は、メッセージを持続的で信頼できる方法で配信する場合のメッセージ配信プロセスの手順を示す。図は文字で説明される。

信頼性の高い方法で、持続的に配信されるメッセージのメッセージ配信手順は次のとおりです。

メッセージのプロデュース

1. クライアントランタイムが、コネクションを使用して、メッセージプロデューサからブローカにメッセージを配信します。

メッセージの処理とルーティング

2. ブローカが、コネクションからメッセージを読み込み、適切な送信先に保管します。

3. ブローカが (持続) メッセージをデータストアに保管します。

4. ブローカが、メッセージを受信したことについて、メッセージプロデューサのクライアントランタイムに通知します。

5. ブローカが、メッセージのルーティングを決定します。

6. ブローカは、コンシューマの一意の識別子をメッセージに付けて、メッセージをその送信先から適切なコネクションへ書き出します。

メッセージのコンシューム

7. メッセージコンシューマのクライアントランタイムが、コネクションからメッセージコンシューマにメッセージを配信します。

8. メッセージコンシューマのクライアントランタイムが、メッセージをコンシュームしたことについて、ブローカに通知します。

メッセージの存続終了

9. ブローカはクライアント通知を処理し、すべての通知を受信したときに、(持続) メッセージを削除します。

10. ブローカは、コンシューマのクライアントランタイムに対して、クライアント通知が処理されたかどうかを確認します。

管理者がメッセージを送信先から削除した場合、または管理者が永続サブスクリプションを削除または再定義し、その結果、トピック送信先内のメッセージが配信されずに削除された場合、ブローカはメッセージがコンシュームされる前にメッセージを破棄できます。その他の状況では、ブローカにメッセージを破棄させるのではなく、デッドメッセージキューと呼ばれる特殊な送信先に保存させることができます。メッセージの有効期限が切れたとき、メモリーの制限のために削除されたとき、またはクライアントが例外をスローしたために配信が失敗したとき、メッセージはデッドメッセージキューに保管されます。メッセージをデッドメッセージキューに保存しておくと、システムの問題を解決し、特定の状況でメッセージを復元することができます。