送達不能キューの取り扱い

正しい宛先に送達できないメッセージを後で取り出すために保管することができるよう、各キュー・マネージャーには通常、送達不能キューとして使用するローカル・キューがあります。 送達不能キューについてキュー・マネージャーに通知し、送達不能キューで見つかったメッセージの処理方法を指定するようにします。 送達不能キューを使用すると、メッセージが送達される順序に影響するので、これらを使用しなくてもかまいません。

キュー・マネージャーに送達不能キューについて通知するには、 crtmqm コマンド (例えば、crtmqm -u DEAD.LETTER.QUEUE) で送達不能キュー名を指定するか、 ALTER QMGR コマンドで DEADQ 属性を使用して後で送達不能キュー名を指定します。 送達不能キューを使用するためには、その前にそれを定義しておくことも必要です。

SYSTEM.DEAD.LETTER.QUEUE という名前のサンプル送達不能キューがプロダクトで使用可能です。 このキューは、キュー・マネージャーを作成すると、自動的に作成されます。 必要ならば、この定義を修正し、名前変更することができます。

送達不能キューには、以下に示すものを除いて、特別な要件はありません。
  • ローカル・キューでなければならない。
  • その MAXMSGL (最大メッセージ長) 属性は、キュー・マネージャーが取り扱う最大メッセージおよび送達不能ヘッダー (MQDLH) のサイズをキューに収容できるようにしておく必要があります。

送達不能キューを使用すると、メッセージが送達される順序に影響するので、これらを使用しなくてもかまいません。 USEDLQ チャネル属性を設定して、メッセージが配信できない場合に送達不能キューを使用するかどうかを決定します。 キュー・マネージャーのいくつかの機能が送達不能キューを使用する一方で、他の機能がそれを使用しないように、この属性を構成できます。 さまざまな MQSC コマンドで USEDLQ チャネル属性を使用する方法について詳しくは、 DEFINE CHANNELDISPLAY CHANNELALTER CHANNEL、および DISPLAY CLUSQMGRを参照してください。

IBM® MQ には送達不能キュー・ハンドラーが用意されています。このハンドラーを使用すると、送達不能キューで検出されたメッセージを処理または除去する方法を指定できます。 IBM MQ 送達不能キューでのメッセージの処理を参照してください。