MFT logger error handling and message rejection
The Managed File Transfer logger identifies two types of error: per-message errors and general errors.
- The result code, which is a required item of data, is missing from a message
- A transfer specifies a job name that is 3000 characters long and too large for the associated database column
- A progress message is received for a transfer, but there is no record of the transfer having been started (perhaps because of a misrouted or delayed transfer start message)
- A message is received, which is not a Managed File Transfer log message
General errors are all those errors that are not per-message errors. These are likely to be because of configuration problems or program errors.
When a per-message error is encountered, the logger rejects the message by placing the message on the reject queue. Nothing is written to the output log, so you must periodically inspect or continuously monitor the reject queue to detect rejected messages.
If too many messages are rejected consecutively, without any messages being successfully written to the database, this is treated as a general error. For example, consider a site that always uses 10 character codes as job names, but which has inadvertently reconfigured the job name column to be two characters wide. Although data that is too wide is usually a per-message error, in this case the configuration problem is general and is detected as a general error. You can tune the number of consecutive per-message errors needed to cause a general error by using the wmqfte.max.consecutive.reject property.
If a general error is detected the logger rolls back any messages not yet committed to the queue manager, and then retries periodically. A message identifying the problem is written to the output log and to the console if the logger was started in foreground mode with the -F parameter.
The location of the output logs for the logger is dependent on whether it is a stand-alone or JEE database logger. For a stand-alone database logger it is located in the directory MQ_DATA_PATH/mqft/logs/coordination_qmgr_name/loggers/logger_name. For a JEE database logger it is located in the standard output log of the application server.
The reject queue
Messages that result in per-message errors are moved to the reject queue. On each rejected message, a message property is set to indicate why the message was rejected. For information about viewing the contents of the reject queue, seeing why a message was rejected, and reprocessing messages, see Reprocessing MFT messages from the reject queue.
Malformed log messages
in the transfer log are not logged by the logger. These messages are
not viewed as being significant and so these messages are sent to
the reject queue. For more information about transfer log messages,
see File transfer log message formats.