パブリケーション

パブリケーションは、アプリケーションによってブローカーに送信されるメッセージです。 その後、ブローカーは、メッセージを受信するようサブスクライブ済みのすべてのアプリケーションにメッセージを送ります。

注: この情報は IBM® WebSphere® MQ 6.0 キュー・マネージャーのみに関するものです。

ブローカーは、受信されるパブリケーションに含まれる情報の種類に応じて、パブリケーションをさまざまな方法で処理できます。

状態情報とイベント情報

パブリケーションは、中身の情報のタイプに応じて以下のように分類できます。
状態パブリケーション
状態パブリケーションには、現在の状態 (例えば、株価や、サッカーの試合の現在のスコアなど) に関する情報が含まれています。 何かが発生すると (例えば、株価が変動したり、サッカーのスコアが変わったりすると)、以前の状態情報は新しい情報に置き換えられるので不要になります。
サブスクライバー・アプリケーションでは、始動時に現行バージョンの状態情報を受け取り、状態が変わるたびに新しい情報を送信してもらうように設定するのが望ましいといえます。
イベント・パブリケーション
イベント・パブリケーションには、発生した個々のイベント (例えば、株の取引や、特定のゴールによる得点など) に関する情報が含まれています。 各イベントは、それぞれ独立しています。
サブスクライバーの側では、イベントの発生時にイベント情報を受け取れるように設定するのが望ましいといえます。

保存パブリケーション

デフォルトでは、関連するすべてのサブスクライバーにパブリケーションを送った後、ブローカーはパブリケーションを削除します。 この種の処理は、イベント情報には適していますが、状態情報には必ずしも適していません。パブリッシャーは、パブリケーションのコピーをブローカーが保持するよう指定できます。 このようなコピーを保存パブリケーションといいます。 そのコピーは、対象のトピックに登録する後続のサブスクライバーに送信できるようになります。 つまり、新しいサブスクライバーは、情報が再びパブリッシュされるのを待たなくても、その情報を受信できる、ということです。 例えば、株価のサブスクリプションに登録しているサブスクライバーは、株価が変化した時点で情報が再パブリッシュされるのを待たずに、現在の株価情報をすぐに受信できます。

ブローカーは、各トピックに 1 つのパブリケーションだけを保存します。 新しいパブリケーションが受信されると古いパブリケーションは削除されます。 したがって、各トピックで 1 つのパブリッシャーだけが保存パブリケーションを送信するようにしてください。

サブスクライバーの側で、保存パブリケーションを受信しないように指定することも可能です。既存のサブスクライバーは、保存パブリケーションの重複コピーを送ってもらうように依頼できます。