Troubleshooting Using SEQ Logs


AssetWise Enterprise Interoperability is designed to be resilient to the types of problems that can cause problems with integrations; out of order messages, value list synchronization and missing references.   When an error processing a specific message does occur, the message is moved to the corresponding dead letter queue and error details are written to the SEQ log.  

Finding Log Messages

During the initial testing phase of an integration, or if troubleshooting issues with the integration, AWEI should be configured with debug logging.  However, this will generate a large number of log messages and it can be difficult to find useful information.

First of all there will be debug messages from the AWEI UI which are generally not useful when troubleshooting specific errors.

These can be filtered by using the following query:  Category = "MessageProcessing" which will limit the log to message related log entries.

If you are looking to review all errors, the "Errors" signal can be used to limit the display to just error log entries:

If there is a specific error of interest, the time range controls can be useful for limiting the display.  The following screen capture shows errors for a specific date.

Each message is posted to a particular topic or exchange (seen below).  In order to see only messages of a particular type, a query like the following can be used: RabbitMQExchange="syncworkorders".

Examining Log Entries for a Message

Once the error has been found, the details of the error can be found by clicking on the log message.  The specific error details are shown and often the source of the problem is obvious from this message.  (In this specific example, the attempt to call the APM rest service returned a 404 error which means that the rest service was not running).    There is also a detailed exception stack which can aid the support team in identifying the source of the problem if the error message is not specific enough.

In some cases it is useful to see all of the log entries associated with processing the specific message, including the debug log entries.  Each message processed by AWEI will have a unique RabbitMQMessageID property.  You can see all the message properties by clicking on a specific error log entry.   To see all of the log entries for that particular message, click the green check mark beside the RabbitMQMessageID property and choose the find option.

This will create a query based on the RabbitMQMessageID.  If the Error signal is un-selected, then all log entries for that message are shown in reverse chronological order as shown below.  There are detailed debug log entries for each stage of the processing pipeline for that connection.  This includes detailed entries for each IdentityService lookup.

The details for each log message can be seen by clicking on the log message.  For example, when troubleshooting identity service issues, it is often useful to see the transformed messages with the IdentityService provided GUIDS as shown below.

Once the message reaches a certain stage in the processing, there are additional properties available for all log entries.  In particular the BOD/BODID and ShortName (seen in the example as WorkRequest\ShortName) are useful in finding error messages.

BOD ID

The BODID is a unique identifier included in the XML document by the sender.  In APM, this identifier is stored on the related object and is available in the history tab.  This provides a way to track the message from source through to destination.

If the BOD ID is known, it can be used for a SEQ query.  The naming of the BOD ID property in SEQ requires a special syntax:

@Properties['BOD/BODID']='3992871c-2c82-4364-b178-6d68e27ed110'

ShortName

The ShortName in a MIMOSA object often contains a user identifiable key.  In the case of a MIMOSA work request originating in SAP, it would contain the SAP notification number.  Again because of the name format, this property can be queried like:

@Properties['WorkRequest/ShortName']='1230432'