リジェクト・キューからの MFT メッセージの再処理

ロガーは、メッセージごとのエラーを検出すると、リジェクト・キューにメッセージを置くことによりメッセージをリジェクトします。 リジェクト・キューの内容を表示したり、メッセージがリジェクトされた理由を確認したり、場合によってはメッセージを再処理したりすることができます。

始める前に

このタスクでは、 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 という名前のプロパティーがあります。 別の方法として、この情報を自動的に取得するようにモニタリング・ツールを作成または構成することもできます。

メッセージを再処理するには、メッセージをリジェクト・キューから入力キューに移動します。 ロガーが独自の管理対象サブスクリプションを作成する通常インストールでは、入力キューはキュー・マネージャーによって定義され、 SYSTEM.MANAGED.DURABLE.49998CFF20006204 入力キューを識別するには、サブスクリプション SYSTEM.FTE.DATABASELogger.AUTO のプロパティーで「宛先名 (Destination name)」を確認するか、次の MQSC コマンドを使用します。
 DISPLAY SUB(SYSTEM.FTE.DATABASELogger.AUTO) DEST
キュー間でメッセージを移動させる1つの方法は、例えばMA01SupportPacを使用することです:
 q -IFTE.REJECT -oSYSTEM.MANAGED.DURABLE.49998CFF20006204 
リジェクト・キューには、さまざまな理由でリジェクトされたメッセージが含まれている場合があり、解決されているのは一部のみです。 この場合はまだすべてのメッセージを再処理でき、現在、受け入れ可能なメッセージはコンシュームされます。受け入れ不可能なメッセージは再度リジェクト・キューに移動されます。