Diagnosing Third Party Vendor SOAP Faults

Problem

When a Third party application is having difficulty with SOAP Faults (error messages), it can sometimes be helpful to enable detailed logging in the Redesign application.   The Redesign SOAP interfaces can provide detailed error logging as well as very detailed "on the wire" level logging if necessary.  This article will explain how to enable detailed logging via the application (Monitor page) or via docker-compose configuration.

Most third party applications will also have detail logging and error capturing as part of their client implementation and user interface. However, some vendors have weak client implementations which do not handle, report or record faults appropriately. In the former case, a combination of client and server logging can be beneficial. In the latter case, server side logging may be the only tool available to diagnose the failing client application.

Loggers and levels

The Redesign application contain a large number "loggers" which can be set to cause the applications to log additional information.   Loggers are named after the Java package or module that contains them.  For example, org.apache.axis is the logger that controllers a loggers in the Axis SOAP toolset.

Each logger can be set to a "log level" indicating the desired level of logging.  These are (in the order of less to more detailed):  

  • OFF

  • ERROR

  • WARN

  • INFO

  • DEBUG

  • TRACE

Each level enables the level(s) before it.    That is, enabling INFO level logging implies WARN and ERROR logging are enabled.

Enabling excessive fine detailed logging in an production environment on some loggers can create significant load and slow response times. In general, logging should only be changed from the defaults to diagnose specific problems.

SOAP Related Loggers

This table describes the loggers most relevant to the SOAP service.

Logger

Description

Logger

Description

org.apache.axis.EXCEPTIONS

At DEBUG level causes all SOAP faults to be logged. Any client response that consists of a SOAP Fault will be logged. This is most commonly used logger to diagnose typical SOAP failures. Because only exceptions are logged this logger has little or no impact on performance.

org.apache.axis.providers

At DEBUG level, causes all "providers", including the RPC provider to log detailed parsing information and wire messages (SOAP XML bodies). Use this logger when the format of the SOAP request or schema violations are suspected. This level of logging is extremely detailed and noisey. It should generally not be enabled for extended periods.

org.apache.axis

Enables logging for the entire SOAP framework. This logger is rarely needed. You should only enable this logger if instructed by the SSDT.

Solution

Enabling Temporary Logging



Logging can be enabled temporarily (until the next application restart):

  1. Log in as an ADMINISTRATOR username

  2. Navigate to Monitor → Logging

  3. Use the grid to filter for the desired logger

  4. Double-click the logger and use the drop down to set the desired logging level

The revised logging level will take effect immediately.

Enable logging in Docker configuration



Logging enabled via configuration will enable on each application startup.  It can be disabled while the application is running using the Monitor page described above.  Remove the logging from the configuration after it is no longer need since excessive unnecessary logging affect performance. 

Related articles