Running traces on the Service Manager server

Service Manager provides parameters to produce detailed trace information for different analysis requirements. The most used trace parameters are rtm, debugdbquery, sqldebug, and debughttp.

When generating a trace in a production system, it should be limited to as few sessions as possible in order to avoid system load and limit the size of the log data to analyze to a minimum. In most cases, only tracing a single user session or background scheduler is required.

Starting a servlet with trace parameters and connecting to it for reproduction

When using the Service Manager load balancer (SMLB), use the debugnode parameter to start a servlet for tracing purposes. This parameter prevents the SMLB from assigning sessions to this servlet. Only when bypassing the SMLB and connecting directly to the servlet port, the session is traced.

To bypass the SMLB with Windows client, simply specify the port of the traced servlet instead of the SMLB port in the connection.

For the web client, the serverHost and serverPort parameters can also be specified in the URL, and by doing this the load balancer is bypassed.

Note By default, direct connection to a servlet by specifying the serverHost and serverPort parameters in the web client URL is not allowed; to allow direct connection, set the honorUrlHost and honorUrlPort parameters in the web.xml file to true.

When a hardware load balancer (HWLB) is used, it does not assign a servlet a port that is not set up as the target in its configuration. However, typically a HWLB also uses a network gateway, and hence direct access to the servlet bypassing the HWLB may not be possible. In this case, additional configuration by the HWLB administrator is required.

Activating dynamic debugging options in Status Monitor

Another option is to activate dynamic debugging for already running sessions or schedulers using the status monitor. By this method, a message is sent to the target session to start tracing, and the tracing becomes active as soon as the target session is in a state to receive the message.

Starting with Service Manager 9.50, dynamic debugging can also be activated programmatically for the current session by using rtecall(“setdebug”). This allows conditional activation of dynamic debugging, that is, for web service integrations from expressions in the extaccess dbdict.

Activating traces of the current session in RAD Debugger

The rtm, sqldebug, and debugadhocsql trace parameters can be activated for the current session using the RAD Debugger. This is convenient during online debugging.