# Generic runtime problems

## **Investigating a “NO EVENTS SHOWN ON DATA WATCHER” symptom using DWAGENT statistics**

In an apparently well-configured system, the root cause of a “no events shown on Data Watcher” symptom might be:

* Events not being detected by the relevant DWA Emitter on DWAgent
* Events not being forwarded by DWA Proxy
* Events being discarded by Data Watcher

The DWAgent-related symptoms can be easily investigated by inspecting DWAgent statistics printed on the console using the following command:

`dwagent.sh -stats`

For instance, if an XFERLOG DWAEmitter is not detecting events this will result in Emitter\XFERLOG\inputTotal=0 or Emitter\XFERLOG\inputLastTimestamp thief in the distant past.

If this is not the case it might be that all events detected are discarded by DWAEmitter, in which case you would observe different values for Emitter\XFERLOG\inputTotal and Emitter\XFERLOG\outputTotal.

DWAEmitters discarding events may be normal (some events are not relevant). Any anomalies in this area might be detected by checking Emitter\XFERLOG\inputTotalError and Emitter\XFERLOG\inputLastErrorTimestamp.

The following is a snippet of available DWAEmitter statistics:

Emitter\XFERLOG\inputTotal=25\
Emitter\XFERLOG\inputLastTimestamp=20100521100459727\
Emitter\XFERLOG\inputLastCursorTimestamp=20100521100459000\
Emitter\XFERLOG\inputTotalError=0\
Emitter\XFERLOG\inputLastErrorTimestamp=-1\
Emitter\XFERLOG\outputTotal=25 Emitter\XFERLOG\outputLastTimestamp=20100521100459730\
Emitter\XFERLOG\outputTotalError=0\
Emitter\XFERLOG\outputLastErrorTimestamp=-1

For instance, if a DWCommunicator problem prevents events from being sent, this will result in **Communicator\ARTEMIS\sendTotal=0** or **Communicator\ARTEMIS\sendLastTimestamp** in the distant past and a recent **Communicator\ARTEMIS\sendLastErrorTimestamp**.

The following is a snippet of available DWCommunicator statistics:

```shell
Communicator\ARTEMIS\sendTotal=91
Communicator\ARTEMIS\sendLastTimestamp=20100521100842913
Communicator\ARTEMIS\sendBacklog=0
Communicator\ARTEMIS\sendTotalError=4612
Communicator\ARTEMIS\sendLastErrorTimestamp=20100521070246788
```

## **Turning runtime tracing ON and OFF**

As part of problem determination or when specifically instructed to do so by the PRIMEUR Contact Center, you might need to turn on runtime tracing of a running DWAgent.\
On Unix machines, this can be done by running the following command:

`dwagent.sh –trace verbose`

This will typically be followed by running the failing use case to reproduce the problem being investigated and then the following command to restore the default trace level:

`dwagent.sh –trace default`

Each time the trace level is changed, an automatic user dump is taken. Traces and dumps can subsequently be collected for problem determination when reporting the problem to the PRIMEUR Contact Center.

See the [System Administration](https://docs.primeur.com/dwagent-2.0.0/system-administration) section for more details on trace management and user dumps.

## **Turning early tracing ON and OFF**

For some types of failures occurring very soon after DWAgent startup, it is not feasible to manage traces as described in the previous section.

To deal with these scenarios, you can turn on early tracing by manually editing \<DWAHOME>\config\log4j.properties and resetting one or more severity-related properties from **INFO** to **DEBUG**.

```
[…]
log4j.category.com.primeur.agentengine.emitter=DEBUG, DWAGENT
log4j.category.com.primeur.agentengine.communicator=DEBUG, DWAGENT
[…]
```

{% hint style="info" %}
You can find more information about the log4j java logging subsystem [at this link](https://apache.org/).
{% endhint %}
