MFT ロガーのエラー処理とメッセージ拒否
Managed File Transfer ロガーは、メッセージごとのエラーと一般的なエラーの 2 つのタイプのエラーを識別します。
- データの必須項目である結果コードがメッセージから欠落している。
- 転送で長さ 3000 文字のジョブ名が指定されたが、関連付けられているデータベース列に大きすぎて入らない
- 転送で進行中メッセージを受信したが、開始された転送のレコードがない (恐らく転送開始メッセージが誤った経路でルーティングされたか遅延しているため)
- 受信したメッセージは Managed File Transfer ログ・メッセージではありません。
一般エラーは、メッセージごとのエラー以外のこれらすべてのエラーです。 これらのエラーは、構成上の問題やプログラム・エラーが原因で発生する可能性があります。
ロガーは、メッセージごとのエラーを検出すると、リジェクト・キューにメッセージを置くことによりメッセージをリジェクトします。 出力ログには何も書き込まれないため、リジェクトされたメッセージを検出するために、リジェクト・キューを定期的に検査または継続的にモニターする必要があります。
データベースにメッセージが正常に書き込まれずに、あまりに多くのメッセージが連続してリジェクトされる場合は、一般エラーとして扱われます。 例えば、ジョブ名として常に 10 文字コードを使用するが、間違えてジョブ名の列を 2 文字幅に再構成してしまったサイトを考えてみましょう。 幅が大きすぎるデータは通常メッセージごとのエラーとなりますが、この場合、構成上の問題は一般的であるため、一般エラーとして検出されます。 wmqfte.max.consecutive.reject プロパティーを使用して、一般エラーを発生させるために必要なメッセージごとの連続エラー数を調整できます。
一般エラーが検出されると、ロガーはまだキュー・マネージャーにコミットされていないすべてのメッセージをロールバックし、定期的に再試行します。 ロガーが -F パラメーターを指定してフォアグラウンド・モードで開始された場合、問題を示すメッセージが出力ログおよびコンソールに書き込まれます。
ロガーの出力ログの場所は、そのロガーがスタンドアロンか JEE データベース・ロガーかによって異なります。 スタンドアロン・データベース・ロガーの場合は、 MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/loggers/logger_nameディレクトリー内にあります。 JEE データベース・ロガーの場合は、そのアプリケーション・サーバーの標準出力ログに含まれます。
リジェクト・キュー
メッセージごとのエラーの原因となったメッセージはリジェクト・キューに移動されます。 リジェクトされたそれぞれのメッセージでは、メッセージがリジェクトされた理由を示すためにメッセージ・プロパティーが設定されています。 リジェクト・キューの内容の表示、メッセージがリジェクトされた理由の確認、およびメッセージの再処理については、 リジェクト・キューからの MFT メッセージの再処理を参照してください。
転送ログ内の Malformed ログ・メッセージは、ロガーによって記録されません。 これらのメッセージは重要であるとみなされないため、リジェクト・キューに送られます。 転送ログ・メッセージについて詳しくは、 ファイル転送ログ・メッセージ・フォーマットを参照してください。