Worker Message Logs

Workers Debug Server

A Workers Message Log allows you to:

  • see the flow and sequence of messages sent between Workers at run-time

  • see when and where any errors have occurred in your applications

  • access a running Worker's MHL cases (right-click menu option)

  • see custom debug messages

An example of a Workers Message Log is shown below, showing the sequence of messages that have been sent to Worker MHL cases.

A single Message Log window is created for each Workers application that is defined by the Head Worker's Alias and the IP Address of where the Workers application is running. Therefore, it is possible to have more than one Workers application sending messages to the same Message Log, IF the Head Worker's Alias and IP Address of the applications are the same.

Buttons

(Live) Logging

When TRUE, any new messages that are acquired by the Message Log will be logged to a comma delimited text file, with each Message Log Column (regardless of whether they are visible or not) separated with a comma. You can set Live Logging to be either TRUE or FALSE when a Message Log is created, from within the Debug Server's Settings.

Sort

Will sort the Message Log rows by the high resolution timestamp value in the Count (sec) column.

Pause

Pauses only the visible updating of new messages to the Message Log front panel. It does not pause the logging of messages to file (if Live Logging is selected).

WID

Toggles between the Worker's ID (WID) or the Worker's Alias for both the Enque Worker and Deque Worker columns.

Resize

Automatically resizes the width of all columns based on the longest string in each column.

Filter

Applies a filter to the message log, based on the contents in the fields: String to Filter, Column and Type.

More than one filter can be applied, allowing you to apply filters on top of filters.

Undo

Un-applies the previously applied filter.

Clear

Clears all applied filters.

Columns

Every time a message is dequeued within a Worker's MHL, meta-data about the message is forwarded to the Worker's Debug Client (if one exists), and then sent to the Debug Server's Message Log (if one exists). The following information about the message is provided in the Message Log's columns.

Good to know

When a Message Log connects to a Debug Client, the order of the messages that appear in the Message Log is the order that the messages were dequeued by their respective MHLs, and not the order that the messages were enqueued. Pressing the Sort button will sort the messages by the time the messages were enqueued.

Count (sec)

This column exists on the very right of the Message Log, and contains a high-resolution timestamp of when the message was enqueued (provided by the LabVIEW palette VI: High Resolution Relative Seconds.vi.) It is not possible to disable this column.

Time/Date

Provides a human-readable low resolution timestamp of when a message was enqueued.

Enque Worker

The WID or alias of the Worker that enqueued the message.

If this field is blank, it is probably because the message was enqueued without the Caller's Main Data Wire connected to the Caller input terminal of a Public Request VI. This terminal is not required if the Public Request VI is being used from an external LabVIEW application or from TestStand.

Enque Case

The MHL case that the message was enqueued from.

If this field is blank, it is probably because the message was enqueued without the Caller's Main Data Wire connected to the Caller input terminal of a Public Request VI. This terminal is not required if the Public Request VI is being used from an external LabVIEW application or from TestStand.

Deque Worker

The WID or alias of the Worker that dequeued the message.

Deque Case

The MHL case that received the message.

Priority

The priority of the message.

Message

Messages sent between MHL cases do not contain an additional message string. This column is reserved for use by Error and User messages (see below).

Error Message

Sent by the framework's Error Handler.vi which exists after the case structure in every Worker MHL. If an error is received on this VI's error in input terminal, the error will be sent to the Message Log. The timestamp for the message is created within Error Handler.vi.

Good to know

Error Handler.vi can be placed anywhere in your code where you want to catch errors to be sent to the Message Log.

User Message

Sent by use of the Worker's palette VI: Send Debugger Message.vi. Users can place this VI anywhere in their code where they want to send a custom message to the Message Log. The timestamp for the message is created within Send Debugger Message.vi.

Good to know

The Enque and Deque columns contain data for both error and user messages. This data comes from the MHL case that sent the error or user message, allowing you to see, for example, which Worker MHL case sent the error or user message (i.e. Deque Worker and Deque Case).

Last updated