リジェクト・キューからの MFT メッセージの再処理
ロガーは、メッセージごとのエラーを検出すると、リジェクト・キューにメッセージを置くことによりメッセージをリジェクトします。 リジェクト・キューの内容を表示したり、メッセージがリジェクトされた理由を確認したり、場合によってはメッセージを再処理したりすることができます。
始める前に
- ロガーは、メッセージごとのエラーを検出すると、リジェクト・キューにメッセージを置くことによりメッセージをリジェクトします。 出力ログには何も書き込まれないため、リジェクトされたメッセージを検出するために、リジェクト・キューを定期的に検査または継続的にモニターする必要があります。
- 連続して拒否されるメッセージが多すぎる場合、これは一般エラーとして扱われます。 wmqfte.max.consecutive.reject プロパティーを使用して、一般エラーを発生させるために必要なメッセージごとの連続エラー数を調整できます。
- スタンドアロン・データベース・ロガーの場合、出力ログはディレクトリー MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/loggers/logger_nameにあります。 JEE データベース・ロガーの場合は、アプリケーション・サーバーの標準出力ログにあります。
本タスクについて
メッセージごとのエラーの原因となったメッセージはリジェクト・キューに移動されます。 場合によって、リジェクト・キューのメッセージを再処理する場合があります。 MFT ロガー・エラー処理とメッセージ拒否で説明されている例 (データベース内に 2 文字のジョブ名列がある場合) では、データベース列の幅が増やされた後でメッセージを正常に処理できます。 別の例として、transfer-complete メッセージが、関連付けられている transfer-start メッセージが欠落しているためにリジェクトされた場合、transfer-start メッセージが後で着信する場合があります。 transfer-complete を再処理すると、成功します。
転送ログ内の Malformed ログ・メッセージは、ロガーによって記録されません。 これらのメッセージは重要であるとみなされないため、リジェクト・キューに送られます。 転送ログ・メッセージについて詳しくは、 ファイル転送ログ・メッセージ・フォーマットを参照してください。
例
リジェクトされたそれぞれのメッセージでは、メッセージがリジェクトされた理由を示すためにメッセージ・プロパティーが設定されています。 プロパティーのフルネームは usr.WMQFTE_ReasonForRejectionですが、usr です。 は、一部のコンテキスト (JMS および IBM® MQ Explorerを含む) では省略されます。 IBM MQ Explorerを使用している場合は、リジェクト・キューを右クリックして 「メッセージの参照」をクリックすると、そのキューの内容を表示できます。 メッセージがリジェクトされた理由を表示するには、メッセージをダブルクリックしてプロパティー・ダイアログを開き、「指定したプロパティー (Named Properties)」ページを選択します。 WMQFTE_ReasonForRejection という名前のプロパティーがあります。 別の方法として、この情報を自動的に取得するようにモニタリング・ツールを作成または構成することもできます。
DISPLAY SUB(SYSTEM.FTE.DATABASELogger.AUTO) DESTキュー間でメッセージを移動させる1つの方法は、例えばMA01SupportPacを使用することです: q -IFTE.REJECT -oSYSTEM.MANAGED.DURABLE.49998CFF20006204 リジェクト・キューには、さまざまな理由でリジェクトされたメッセージが含まれている場合があり、解決されているのは一部のみです。 この場合はまだすべてのメッセージを再処理でき、現在、受け入れ可能なメッセージはコンシュームされます。受け入れ不可能なメッセージは再度リジェクト・キューに移動されます。