Message Queue での JMQ 通知プラグインの使用には、次の利点があります。
Message Queue は JMS 標準を実装しています。
Message Queue を使用すると、トピックまたはキューに、あるいはこれらの配信方法の両方に向けてメッセージを生成できます。この簡単な定義については、「22.1.3.1 トピックまたはキューへの発行」を参照してください。
特にメッセージがキューに生成される場合、メッセージ配布中に Message Queue によって、機能強化された負荷分散が提供されます。
JMQ 通知プラグインでは、最大 5 つの通知プラグインを設定できます。各種のプラグインを使用して、トピック、キュー、イベント通知サービス、その他にメッセージを生成できます。詳細は、「22.1.3.2 複数の JMQ 通知プラグインの使用」を参照してください。
Message Queue によって、信頼性の高い通知の配信が可能になります。
たとえば、持続フラグを有効にした状態でメッセージを生成するように JMQ 通知プラグインを設定すると、メッセージは、コンシューマによって受信されるまで Message Queue ブローカ内に残ります。メッセージは、サーバーがダウンした場合でもそのメッセージを取得して、適切なコンシューマに使用可能にできるような方法で保存されます。
トピックとキューは異なるメッセージング配信パターンを使用しており、Message Queue サービスでそれぞれのパターンを設定できます。
トピック: メッセージプロデューサがメッセージをトピックに送信する場合は、パブリッシュ/サブスクライブアーキテクチャーが使用されます。このブロードキャストパターンでは、プロデューサがメッセージをトピック送信先に送信します。このトピック送信先には、任意の数のコンシューマを登録 (サブスクライブ) できます。トピックに登録されている各コンシューマは、メッセージの独自のコピーを取得します。トピックにコンシューマが登録されていない場合は、メッセージが破棄されます。
また、イベント通知サービスもパブリッシュ/サブスクライブアーキテクチャーを使用しており、Message Queue で定義されているトピックパターンに似ています。
キュー: メッセージプロデューサがメッセージをキューに送信する場合は、ポイントツーポイントアーキテクチャーが使用されます。このパターンでは、プロデューサがメッセージをキュー送信先に送信し、1 コンシューマだけがその送信先からメッセージを受信できます。キューからのメッセージを複数のコンシューマが待っている場合、1 サブスクライバのみがそのメッセージを受信します。待っているコンシューマがいない場合、メッセージがタイムアウトするか、またはコンシューマがそのキューを受信するようになるまで、メッセージは保持されます。
キューにメッセージを生成すると、メッセージの負荷を複数のコンシューマにわたって分散させることができます。
1 〜 5 つの通知プラグインを設定できます。
Messaging Server は、次のデフォルトの場所でプラグインライブラリを提供しています。
/opt/SUNWmsgsr/lib/libjmqnotify
プラグインのパラメータを指定したり、実行可能コードのライブラリにプラグインをポイントしたりするには、configutil ユーティリティーを使用します。
複数のプラグインを指定した場合、各プラグインは、ほかのプラグインとは別に通知メッセージを生成します。たとえば、2 つのプラグインに削除メッセージパラメータが設定された状態で、ユーザーのメールボックスからメッセージが削除された場合は、両方のプラグインが通知メッセージを生成します。
複数のプラグインを設定することにより、目的に応じて別のメッセージ配布パターンを利用できます。たとえば、メッセージを生成する、次の 3 種類のプラグインを設定できます。
キュー (Message Queue を使用)
トピック (Message Queue を使用)
イベント通知サービス
設定するプラグインごとに、別の一連の configutil パラメータを定義してください。
これらのパラメータによって、次の 2 種類の情報が決定されます。
生成する通知メッセージの種類。たとえば、LogUser パラメータを有効にすると、ユーザーがログインまたはログアウトした場合は常に通知メッセージが送信されます。
Message Queue に必要な設定情報。たとえば、jmqHost パラメータは、Message Queue ブローカが動作しているホストの IP アドレスを識別します。
プラグインを設定する方法については、「JMQ 通知プラグインを設定する」を参照してください。