Sun Java System Message Queue 3.7 UR1 管理ガイド

デッドメッセージキューの使用の設定

デッドメッセージキュー 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 標準の物理的送信先プロパティーのデッドメッセージキューの処理

プロパティー 

デッドメッセージキューによる固有の処理 

limitBehavior

デッドメッセージキューのデフォルト値は、REMOVE_OLDEST です。その他のキューのデフォルト値は REJECT_NEWEST です。デッドメッセージキューでは、フロー制御はサポートされません。

localDeliveryPreferred

デッドメッセージキューに適用されません。 

maxNumMsgs

デッドメッセージキューのデフォルト値は、1000 です。その他のキューのデフォルト値は -1 (無制限) です。

maxNumProducers

デッドメッセージキューに適用されません。 

maxTotalMsgBytes

デッドメッセージキューのデフォルト値は、10M バイトです。その他のキューのデフォルト値は -1 (無制限) です。

isLocalOnly

ブローカクラスタで、デッドメッセージキューは常にグローバルの物理的送信先になり、このプロパティーは永続的に false に設定されます。

メッセージの内容

ブローカはメッセージ全体をデッドメッセージキューに配置できます。あるいはヘッダーとプロパティーデータのみを残して、メッセージ本体の内容を破棄できます。デフォルトでは、デッドメッセージキューはメッセージ全体を格納します。

デッドメッセージキューのサイズを減らし、デッドメッセージを復元する予定がない場合は、imq.destination.DMQ.truncateBody ブローカプロパティーを true に設定することを検討してください。

imqcmd update bkr -o imq.destination.DMQ.truncateBody=true

これにより、メッセージ本文が破棄され、ヘッダーとプロパティーデータのみが残されます。

デッドメッセージのロギングの有効化

デッドメッセージのロギングは、デフォルトでは無効になっています。デッドメッセージのロギングを有効にすると、ブローカが次のイベントを記録するようになります。

次のコマンドでは、デッドメッセージのロギングを有効にしています。

imqcmd update bkr -o imq.destination.logDeadMsgs=true

デッドメッセージのロギングは、デッドメッセージキューを使用するすべての物理的送信先に適用されます。物理的送信先の個々については、ロギングを有効または無効に設定できません。