The Talon Manual

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

An AEP engine's trace is controlled via the nv.aep trace logger. This logger is used by an AEP engine to output flow of exection type of trace messages during startup, steady state and shutdown.. The amount of information output by the engine is controlled by the logger's trace level. When using the native logger, the default trace level is INFO. DEBUG is the only additional supported trace level and may be used to emit diagnostic trace for troubleshooting. When using SLF4J, the default trace level is as defined by the concrete SLF4J binding used. The trace levels with SLF4J that control trace output are INFO (corresponding to the native INFO trace level) and TRACE (corresponding to the native DEBUG trace level).The nv.aep logger is used to output flow of execution trace messages during startup, steady state and shutdown.

In steady state, the engine uses additional loggers to log other types of trace messages. They are:

  • The nv.aep.sno logger that traces the sequence numbers of inbound and outbound messages
    • Enabled via
      • nv.aep.sno.trace=debug when using native trace logging
      • Settng the level of the nv.aep.sno logger to Trace when using SLF4J
  • The nv.aep.event logger that traces events dispatched to an engine
    • Enable via
      • nv.aep.event.trace=debug when using native trace logging
      • Setting the level of the nv.aep.event logger to Trace when using SLF4J
  • The nv.aep.alert logger that traces alert events emitted by the engine. 
    • Enable via
      • nv.aep.alert.trace=info when using native trace logging
      • Setting the level of the nv.aep.alert logger to WARN when using SLF4J
  • The nv.aep.txn logger that traces the execution of transactions within an engine
    • Enable via
      • nv.aep.txn.trace=debug when using native trace logging
      • Setting the level of the nv.aep.txn logger to Trace when using SLF4J
  • The nv.aep.msg logger that traces the flow of messages through an engine.
    • Enable via
      • nv.aep.msg.trace=debug when using native trace logging
      • Settingthe level of the nv.aep.msg logger to Trace when using SLF4J

These can be set in Config DDL in the <env> section or via System properties on the command line. 

Configuration Settings

Whether or not the engine emits trace is configured by setting the appropriate property in the app config in DDL. Note that when using SLF4J logging that the trace level must be set to Trace for the corresponding logger. 

Code Block
xml
xml
...
<apps>
  <app name="processor-send-driver" mainClass="com.neeve.embedded_xvm_sample.driver.SendDriver">
    <enableEventTrace>true</enableEventTrace>
    <enableAlertTrace>true</enableAlertTrace> <!--Since 3.11.61-->
    <enableScheduleTrace>On</enableScheduleTrace>
    <enableSequenceNumberTrace>On</enableSequenceNumberTrace>
    <enableTransactionTrace>On</enableTransactionTrace>
    <enableMessageTrace>true</enableMessageTrace>
    <messageTraceFilterUnsetFields>true</messageTraceFilterUnsetFields>
    <messageTraceInJson>true</messageTraceInJson>
    <messageTraceJsonStyle>SingleLine</messageTraceJsonStyle>
    <messageTraceMetadataDisplayPolicy>On</messageTraceMetadataDisplayPolicy>
    ...
  </app>
</apps>
...

...

Configuration SettingDescription

<enableEventTrace>

Enables / disables diagnostic trace logging of events received and dispatched by the engine.

<enableAlertTrace>

Enables / disables diagnostic trace logging of alert events emitted by the engine.

<enableScheduleTrace>

Enables / disables diagnostic trace logging of scheduled events.

<enableSequenceNumberTrace>

Enables / disables diagnostic trace logging related to message sequencing.

<enableTransactionTrace>

Enables / disables diagnostic trace logging of transaction staging.
<enableMessageTrace>Enables / disables message trace

<messageTraceJsonStyle>

One of JsonPrettyPrintStyle (Default is SingleLine)

<messageTraceMetadataDisplayPolicy>

One of MetadataDisplayPolicy (Default is Only)

<messageTraceFilterUnsetFields>

true or false, new feature to filter values for fields that aren't set (instead of display their default values) (Default is true)

<messageTraceInJson>

true or false, whether or not to output in json format, setting to false uses a more efficient text based display, but doesn't support single line or unset field filtering (Default is True)

...

By default, when operating in steady state, an AEP engine only outputs warning/error messages and no informational messages . However, the engine can be configured to emit the following types of trace messages:

  • Output used to trace the detailed flow of execution of an engine
    • Enabled via:
      • nv.aep.trace=debug when using the native logger
      • Configuring the level of the nv.aep logger to Trace when using SLF4J
  • Output used to trace the sequence numbers of inbound and outbound messages
    • Enabled via
      • nv.aep.sno.trace=debug when using the native logger
      • Configuring the level of the nv.aep.sno logger to Trace when using SLF4J
  • Output used to trace events dispatched to an engine
    • Enable via
      • nv.aep.event.trace=debug when using the native logger
      • Configuring the level of the nv.aep.event logger to Trace when using SLF4J
  • Output used to trace the execution of transactions within an engine
    • Enable via
      • nv.aep.txn.trace=debug when using the native logger
      • Configuring the level of the nv.aep.txn logger to Trace when using SLF4J
  • Output used to trace the flow of messages through an engine.
    • Enable via
      • nv.aep.msg.trace=debug when using the native logger
      • Configuring the level of the nv.aep.msg logger to Trace when using SLF4J

as described above in the Trace Loggers and Configuration section above. This section describes the output associated with enabling additional trace logging. 

Anchor
_Toc224093050
_Toc224093050
Flow of Execution Trace

...


Transaction execution trace is not output by a backup agent.

 

Anchor
_Toc224093062
_Toc224093062
Alert Trace

Status
colourGreen
titleSince 3.11.61

Alert trace traces any event implement IAlertEvent to the nv.aep.alert logger. For example, an UnhandleMessageEvent emitted because no MessageView factory could be found, would yield trace like:

Panel

<13,343452,TestMachine> 20190314-15:24:13:533 (wrn)...[AepEngine<sma-tck-forwarder>] [ALERT]: [event=UNHANDLED_MESSAGE, type=111, source=sma-tck-forwarder, owners=2, endOfBatch=true, delay=0, scheduledTime=0, dispatchTime=0, time=1552602253523, metadata=[2,3,2300,1,0,0,0,-1,F_BE_1], key=F_BE_1, messageId='18', reason=com.neeve.sma.SmaException: Fault in handling of inbound message by channel [id=18, topic=F_BE_1]: View factory '2300' could not be found]

Unlike other AepEngine loggers, alert trace is enabled by default. This is because under normal usage patterns alerts are almost always indicative of a problem. Application's that want finer grain control over logging of alert logging can disable alert trace and provide their own EventHandler for IAlertEvent. 

Anchor
_Toc224093062
_Toc224093062
Message Trace

See Tracing Messages

...

The trace output by an engine during shutdown is relatively standard and does not warrant special explanation.

The nv.aep.event logger that traces events dispatched to an engine

  • Enable via
    • nv.aep.event.trace=debug when using native trace logging
    • Setting the level of the nv.aep.event logger to Trace when using SLF4J