概要 : メッセージング システムと JMS
このトピックでは、JMS(Java Message Service)を使用して、つまり WebLogic Workshop JMS コントロールを使用してアクセス可能なメッセージング システムの特徴について説明します。
WebLogic Workshop のコントロールの詳細については、コントロール : Web サービスからリソースを使用するを参照してください。
JMS コントロールの詳細については、JMS コントロール : Web サービスから Java Message Service のキューとトピックを使用するを参照してください。
JMS コントロールでサポートされる具体的なメッセージングのシナリオについては、JMS コントロールでサポートされるメッセージングのシナリオを参照してください。
メッセージング システムを使用すると、ソフトウェア コンポーネント間で通信することができます。メッセージング システムのクライアントは、他のクライアントとの間でメッセージを送受信することができます。各クライアントは、メッセージの送受信機能を提供するメッセージング サーバに接続します。WebLogic Server のコンポーネントである WebLogic JMS は、メッセージング サーバの一例です。WebLogic Server では、サードパーティのメッセージング システムもサポートしています。
メッセージング システムを使用すると、非同期の分散通信を行うことができます。コンポーネントは送り先にメッセージを送信します。メッセージの受信側は送り先からメッセージを取り出します。送信側と受信側は直接には通信しません。送信側にはメッセージの送信先となる送り先があることしかわからず、受信側にもメッセージの受信元となる送り先があることしかわかりません。送信側と受信側でメッセージ フォーマットの種類と送り先について一致しているかぎり、メッセージング システムが実際のメッセージ配信を管理します。
メッセージング システムを使用すると、信頼性を実現することにもなります。信頼性のレベルは送り先またはクライアントごとにコンフィグレーションするのが一般的ですが、メッセージング システムでは、メッセージが配信されることと、予定されている宛先に 1 回だけ配信されることを保証できます。
JMS は、ポイント ツー ポイントとパブリッシュ/サブスクライブという 2 種類のメッセージベースの通信をサポートしています。
ポイント ツー ポイント メッセージングには JMS キューを使用します。キューとは、JMS サーバでコンフィグレーションされている特定の名前付きリソースです。
JMS コントロールなどの JMS クライアントは、キューとの間でメッセージを送受信します。ポイント ツー ポイント メッセージのコンシューマは 1 つだけです。複数のレシーバが同じキューのメッセージをリスンできますが、いずれかのレシーバが特定のメッセージをキューから取り出すと、メッセージは消費され、他のコンシューマが取り出すことはできなくなります。
メッセージ コンシューマは、メッセージごとに受け取ったことを通知します。
メッセージング システムは、あらかじめ指定されている試行回数に達するまで個々のメッセージを再送信しようとします。
パブリッシュ/サブスクライブ メッセージングには JMS トピックを使用します。トピックとは、JMS サーバでコンフィグレーションされている特定の名前付きリソースです。
JMS コントロールなどの JMS クライアントは、トピックとの間でメッセージをパブリッシュしたり、サブスクライブしたりします。パブリッシュされたメッセージのサブスクライバは複数でもかまいません。トピックに対するすべてのサブスクライバは、サブスクリプションがアクティブになったら、そのトピックに対してパブリッシュされているすべてのメッセージを受け取ることができます。
JMS クライアントは、メッセージング システムとの接続を取得してからでないと、キューまたはトピックとの間でメッセージを送受信できません。接続を取得するには接続ファクトリを使用します。接続ファクトリは、メッセージ サーバ管理者がコンフィグレーションするリソースです。接続ファクトリの名前は、接続を取得しようとするクライアントがルックアップできるように、JNDI ディレクトリに保存されます。
WebLogic Workshop には、cgConnectionFactory というデフォルトの接続ファクトリがあらかじめコンフィグレーションされています。この接続ファクトリは、明示的にオーバーライドしない限り、すべての JMS コントロールで使用されます。