Interstage JMSは、以下の高信頼な機能を提供します。
異常時のメッセージ退避
以下のような理由でシステムから破棄されたメッセージを、デッドメッセージと呼びます。
有効期限が切れた。
Message-driven Beanアプリケーションへの同一メッセージの配信処理が2回連続で失敗した。
メッセージブローカは、起動時に自動的にデッドメッセージを配置するデッドメッセージキューを作成します。メッセージブローカは、デッドメッセージをデッドメッセージキューに配置します。デッドメッセージキューには、「mq.sys.dmq」という固有の物理格納先の名前が設定され、削除できません。また、デッドメッセージキューに明示的にメッセージを送信することもできません。
デッドメッセージキューの管理
imqcmdコマンドを使用して、デッドメッセージキューを他の物理格納先と同じように管理できますが、以下の相違点があります。
デッドメッセージキューの作成/削除を行うことはできません。
デッドメッセージキューからのメッセージの復元
デッドメッセージキューに移動されたメッセージは、Interstage JMSのキューブラウザ機能を使用して参照します。
デッドメッセージキューをJMSアプリケーション内で使用する場合は、SessionクラスのcreateQueueメソッドを使用して、デッドメッセージキューを取得してください。
例
デッドメッセージキューを取得する場合のcreateQueueメソッドの例
Queue deadMessageQueue = session.createQueue("mq.sys.dmq") ;
デッドメッセージキューからのメッセージの破棄
デッドメッセージキューに移動されたメッセージが不要となった場合は、imqcmdコマンドで破棄します。詳細については、「9.5.6 purge dstサブコマンド」を参照してください。
例
デッドメッセージキューからメッセージを破棄するコマンド実行例
C:\Interstage\F3FMisje6\mq\bin\imqcmd purge dst -t q -n mq.sys.dmq
/opt/FJSVisje6/mq/bin/imqcmd purge dst -t q -n mq.sys.dmq