WebSphere Message Service Clients for C/C++ and .NET, Version 1.2 オペレーティング・システム: Linux, Windows

永続サブスクライバー

永続サブスクライバーは、特定のトピックに関して公開されたすべてのメッセージ (サブスクライバーが非アクティブなときに公開されたメッセージを含む) を受信するメッセージ・コンシューマーです。

このトピックの情報は、 アプリケーションが WebSphere MQ キュー・マネージャーまたは WebSphere サービス統合バスに接続する場合にのみ該当します。ブローカーへのリアルタイム接続の場合は該当しません。

トピックの永続サブスクライバーを作成するため、アプリケーションは永続サブスクリプションを示す名前とトピックを表す Destination オブジェクトをパラメーターとして指定して、Session オブジェクトの Create Durable Subscriber メソッドを呼び出します。アプリケーションはメッセージ・セレクターを備えた永続サブスクライバーまたはメッセージ・セレクターがない永続サブスクライバーを作成できます。また、永続サブスクライバーがサブスクライバー自体の接続により公開されたメッセージを受信するかどうかを指定できます。

永続サブスクライバーの作成に使用されるセッションには、クライアント ID が関連付けられている必要があります。このクライアント ID は、セッション作成時に使用された接続に関連付けられていたクライアント ID と同一です。 このクライアント ID を指定するには、接続の作成に使用される接続ファクトリーの XMSC_CLIENT_ID プロパティーを設定します。

永続サブスクリプションを示す名前はクライアント ID において固有でなければなりません。したがって、クライアント ID は永続サブスクリプションの完全な固有 ID の一部を構成します。メッセージング・サーバーは永続サブスクリプションのレコードを維持しており、トピックについて公開されたすべてのメッセージが、永続サブスクライバーにより確認されるか、または有効期限が切れるまで保存されるようにします。

永続サブスクライバーが閉じた後も、メッセージング・サーバーは引き続き永続サブスクリプションのレコードを維持します。以前に作成された永続サブスクリプションを再利用するには、アプリケーションが同じサブスクリプション名を指定し、永続サブスクリプションに関連付けられていたものと同じクライアント ID のセッションを使用して、永続サブスクライバーを作成する必要があります。一度に 1 つのセッションだけが、特定の永続サブスクリプションの永続サブスクライバーを維持できます。

永続サブスクリプションの有効範囲は、サブスクリプションのレコードを維持するメッセージング・サーバーです。2 つのアプリケーションがそれぞれ異なるメッセージング・サーバーに接続しており、各アプリケーションが同じサブスクリプション名とクライアント ID を使用して永続サブスクライバーを作成すると、完全に独立した 2 つの永続サブスクリプションが作成されます。

永続サブスクリプションを削除する場合、アプリケーションは永続サブスクリプションを示す名前をパラメーターとして指定し、Session オブジェクトの Unsubscribe メソッドを呼び出します。セッションに関連付けられているクライアント ID は、永続サブスクリプションに関連付けられているクライアント ID と同一でなければなりません。メッセージング・サーバーは 維持している永続サブスクリプションのレコードを削除し、これ以降永続サブスクライバーにメッセージを送信 しなくなります。

既存のサブスクリプションを変更する場合、アプリケーションは同一サブスクリプション名とクライアント ID を使用し、異なるトピックまたはメッセージ・セレクター (あるいはこの両方) を指定して永続サブスクライバーを作成できます。永続サブスクリプションの変更は、サブスクリプションを削除してから新規サブスクリプションを作成する操作と同等です。

キュー・マネージャーに接続するアプリケーションの場合、各永続サブスクライバーにサブスクライバー・キューが指定されている必要があります。トピックのサブスクライバー・キュー名を指定するには、 トピックを表す Destination オブジェクトの XMSC_WMQ_DUR_SUBQ プロパティーを設定します。デフォルトのサブスクライバー・キューは SYSTEM.JMS.D.SUBSCRIBER.QUEUE です。

永続サブスクライバーが 1 つのサブスクライバー・キューを共有するか、または各永続サブスクライバーが専用のサブスクライバー・キューからメッセージを取り出すことができます。 アプリケーションでどちらの方法を採用するかについては、「WebSphere MQ Java の使用」を参照してください。

永続サブスクリプションのサブスクライバー・キューは変更できない点に注意してください。 サブスクライバー・キューを変更する必要がある場合は、サブスクリプションを削除してから新規作成する方法でのみ変更できます。

サービス統合バスに接続するアプリケーションの場合、各永続サブスクライバーには永続サブスクリプション・ホームが指定されている必要があります。同じ接続を使用するすべての永続サブスクライバーの永続サブスクリプション・ホームを指定するには、その接続の作成に使用される ConnectionFactory オブジェクトの XMSC_WPM_DUR_SUB_HOME プロパティーを設定します。個別のトピックの永続サブスクリプション・ホームを指定するには、 トピックを表す Destination オブジェクトの XMSC_WPM_DUR_SUB_HOME プロパティーを設定します。接続を使用する永続サブスクライバーをアプリケーションが作成する前に、その接続の永続サブスクリプション・ホームを指定する必要があります。宛先に対して指定されている値は、接続に対して指定されている値に優先します。


Concept topic

ご利用条件 | フィードバック (英語のみ)

Timestamp icon最終更新: 8 Jun 2006
(C) Copyright IBM Corporation 2005, 2006. All Rights Reserved.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)