Enabling the exception log

The exception log enables the diagnosis of exceptions that occur at any time during processing on an integration server.

About this task

The exception log resource manager enables data relating to exceptions that occur at any time during processing on an integration server to be recorded, in an exception log, so that the message flow developer or administrator can diagnose such exceptions. The exception log is particularly useful when you are trying to diagnose exceptions that are not reported to the error log because the exception has been handled in a message flow. The exception log is controlled by three properties that are available in the server.conf.yaml configuration file. The values of these properties can be viewed by using the mqsireportproperties command.

Even if the exception is not present in the error log meaning that it has been handled by flow logic, the exception is added to the exception log.

The exception log is written to one of the following locations depending on whether the integration server is independent or is managed by an integration node:
  • WorkDirectory/config/common/log/integration_server.IntegrationServerName.exceptionLog.txt when the integration server is independent.
  • MQSI-REGISTRY/common/log/IntegrationNodeName.IntegrationServerName.exceptionLog.txt when the integration server is managed by an integration node.
The exception log is a rolling collection of 4 files; when a file is full, data is added to the next file. When the last file has been filled, data starts to be added to the first file, overwriting the previous data there. This cycle of writing continues, ensuring that the newest data is retained. Restarting the integration server causes the previous log to be moved and a numeric suffix added to it.
The exception log includes:
  • A summary or short description of the exception.
  • A list of the exception's inserts.
  • Message numbers of any nested exceptions.
  • Optionally, details recorded by the Flow Thread Reporter. If the exception occurs in a message flow, the Flow Thread Reporter provides data to enable you to identify the location in the message flow at which the exception occurred.
Exceptions are listed in the order of their creation.

Procedure

Enable the exception log by amending properties in the ExceptionLog subsection of the ResourceManagers section of the server.conf.yaml configuration file.
The parameters are:
enabled
Controls whether the exception log is enabled.
Valid values are true and false.
The default value is false.
-n includeFlowThreadReporter
Controls whether, if an exception occurs on a message flow thread, additional information from the Flow Thread Reporter is added to the exception log. The additional information includes the flow thread history and stack. This information is quite verbose but is useful if you want to identify the precise location in a flow that an exception occurred, or what the passage through the flow was.
Valid values are true and false.
The default value is false.
showNestedExceptionDetails
Controls whether the exception log includes the details of any nested exceptions.
Valid values are true and false.
By default, the exception log does not include the details of any nested exceptions because they will already have been printed earlier in the log. Setting this option to true results in nested exceptions being re-printed, which is useful if your exception log has multiple concurrent exceptions. However, it might not be obvious which previous entry relates to the current exception.
To enable the exception log and set it to include details of any nested exceptions and additional information from the Flow Thread Reporter, specify the parameters in the server.conf.yaml file as follows:
ExceptionLog:
    enabled: true                     # Enables logging of exceptions to <workdir>/config/common/log/integration_server.<name>.exceptionLog.txt
    includeFlowThreadReporter: true   # Toggles whether exception in the exception log include a flow stack and history from the flow thread reporter
    showNestedExceptionDetails: true  # Toggles whether nested exceptions are shown by default in the exception log