デッドメッセージキュー mq.sys.dmq は、ブローカとブローカのその他の物理的送信先のデッドメッセージを保持する、システムで生成された物理的送信先です。デッドメッセージキューは、監視、システムの効率性の調整、トラブルシューティングに使用するツールです。「デッドメッセージ」の定義と、デッドメッセージキューの概要については、『 Message Queue 技術の概要』を参照してください。
ブローカは起動時に自動的にデッドメッセージキューを作成します。ブローカは処理できないメッセージ、または生存期間を過ぎたメッセージを、キューに配置します。さらに、その他の物理的送信先が廃棄したメッセージの保持にデッドメッセージキューを使用することもあります。デッドメッセージキューを使用することで、システムのトラブルシューティングに役立つ情報を得ることができます。
デフォルトでは、物理的送信先は、デッドメッセージキューを有効に設定しています。物理的送信先がデッドメッセージキューを使用しないように設定できます。あるいは物理的送信先プロパティー useDMQ を設定して有効にすることもできます。
次の例では、デフォルトでデッドメッセージキューを使用する、myDist と呼ばれるキューが作成されます。
imqcmd create dst -n myDist -t q
次の例では、同じキューに対してデッドメッセージキューの使用が無効になります。
imqcmd update dst -n myDist -t q -o useDMQ=false
ブローカ上の自動作成されたすべての物理的送信先で、デッドメッセージキューの使用を有効にしたり、imq.autocreate.destination.useDMQ ブローカプロパティーを設定して、デッドメッセージキューの使用を無効にしたりできます。
Message Queue コマンドユーティリティー (imqcmd) を使用して、デッドメッセージキューをほかのキューと同じように管理できますが、いくつかの相違点があります。たとえば、デッドメッセージキューはシステムで生成されるため、作成、停止、破棄の操作は行えません。さらに、表 6–3 に示すように、デッドメッセージキューのデフォルト値は通常のキューと異なる場合があります。
デッドメッセージキューは、ほかのキューの設定と同様に設定しますが、特定の物理的送信先のプロパティーは適用されません。あるいは別のデフォルト値が指定されます。表 6–3 にデッドメッセージキューが独自の方法で処理するキュープロパティーを一覧表示しています。
表 6–3 標準の物理的送信先プロパティーのデッドメッセージキューの処理
ブローカはメッセージ全体をデッドメッセージキューに配置できます。あるいはヘッダーとプロパティーデータのみを残して、メッセージ本体の内容を破棄できます。デフォルトでは、デッドメッセージキューはメッセージ全体を格納します。
デッドメッセージキューのサイズを減らし、デッドメッセージを復元する予定がない場合は、imq.destination.DMQ.truncateBody ブローカプロパティーを true に設定することを検討してください。
imqcmd update bkr -o imq.destination.DMQ.truncateBody=true
これにより、メッセージ本文が破棄され、ヘッダーとプロパティーデータのみが残されます。
デッドメッセージのロギングは、デフォルトでは無効になっています。デッドメッセージのロギングを有効にすると、ブローカが次のイベントを記録するようになります。
ブローカがデッドメッセージキューにメッセージを移動する
ブローカがデッドメッセージキューとデッドメッセージキューを使用していない物理的送信先からメッセージを破棄する
物理的送信先が制限に達する
次のコマンドでは、デッドメッセージのロギングを有効にしています。
imqcmd update bkr -o imq.destination.logDeadMsgs=true
デッドメッセージのロギングは、デッドメッセージキューを使用するすべての物理的送信先に適用されます。物理的送信先の個々については、ロギングを有効または無効に設定できません。