サブスクリプションの登録解除

特定のサブスクライバーへの 1 つ以上のサブスクリプションは、Deregister Subscriber コマンド・メッセージを使用して登録解除できます。これは、ブローカー制御キュー SYSTEM.BROKER.CONTROL.QUEUE に送信されます。 このメッセージは、最初にサブスクリプションを登録したサブスクライバーによって送信されなければなりません。

サブスクリプションを登録解除する方法は、以下のような方法もあります。

サブスクライバー・アプリケーションがメッセージを送信してサブスクリプションを登録解除し、正常に実行されたことを示す応答メッセージを受信する際、パブリケーションの一部が登録解除時にブローカーによる処理の最中であった場合、それらが解除後にサブスクライバー・キューに到達する場合があります。この結果、サブスクライバー・キューで未処理のメッセージが構築されることがあります。 繰り返しスリープして適切な CorrelId を指定した MQGET 呼び出しを送信することで、アプリケーションがこのような未処理のメッセージをキューから消去することができます。

同様に、サブスクライバーが永続動的キューを使用し、終了時に PurgeandDelete オプションを指定してキューを登録解除およびクローズする場合、キューは空にならない場合があります。これは、ブローカーからのパブリケーションが、 キューの削除時にコミットされていないためです。 この場合、MQCLOSE 呼び出しによって Q_NOT_EMPTY 戻りコードが発行されます。 アプリケーションは、時折スリープして MQCLOSE 呼び出しを再発行することによって、 この問題を回避することができます。

関連概念
サブスクリプション
関連タスク
保存パブリケーションの使用
サブスクライブ
関連資料
Deregister Subscriber メッセージ
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
aq13060_