DEBUG_THREADID

Parameter: DEBUG_THREADID
Short description: Enables the output of the process ID/thread ID in front of every Domino console/log line. Produces entries in the format [PID:HEX-TID] and is a prerequisite for nearly all advanced diagnostics in which threads need to be correlated.

Profile

Parameter
DEBUG_THREADID
Component
Server
Category
Logging / Debug
Available since
Domino 7.x; from Domino 8.5.3 onward set by default in notes.ini of new servers
Value format
0 (off) or 1 (on)
Default
1 from Domino 8.5.3, otherwise not set

Description

If DEBUG_THREADID is set, Domino writes a prefix like the following before every console or console.log line:
[4674:000E-30C8] 09/13/2016 09:49:47.90 PM SSLProcessHandshakeMessage Exit> ...
The components:
  • 4674 – process ID (e.g. of nserver).
  • 000E – internal task/sub-task counter.
  • 30C8 – thread ID (hex).

Why indispensable

Without this prefix, log lines cannot reliably be assigned to individual threads. Multi-threaded tasks such as HTTP, Router, Replicator, IMAP, NRPC, JVM, and even the console logger itself write from multiple threads in parallel — diagnoses such as „which thread is hanging?“, „which thread caused the SSL error?“, or „which request belongs to which response?“ are then unanswerable.
HCL Customer Support therefore explicitly requires DEBUG_THREADID in a whole series of data collection guides, including:
  • KB0028296 „Collecting data for Domino Server hang/bad performance“ – sets DEBUG_THREADID=1 as the first step of data collection.
  • KB0028298 „Collecting Data for HCL Domino server NRPC mail routing issues“ – same.
  • KB0034115 „How to track changes to the Notes.ini file in Domino server“ – requires Debug_ThreadID=1 together with Console_Log_Enabled=1.

Settable at runtime

The parameter can be set on the server console without restart:
set config DEBUG_THREADID=1
It then takes effect immediately. For permanent use, however, it should be stored in notes.ini or the configuration document so that it remains active after a server restart.

Default from 8.5.3

From Domino 8.5.3, DEBUG_THREADID=1 was added to the default notes.ini of new servers (HCL Forum, 8.5 discussion). On in-place upgrades of older servers, it can happen that the entry is added automatically — this is explicitly intended and should not be removed.

Examples

For every server diagnostic session:
Console_Log_Enabled=1 DEBUG_THREADID=1
Temporarily disable (leave the entry in place so that upgrade scripts do not set it back to 1):
DEBUG_THREADID=0

Notes

  • Performance overhead – negligible; HCL recommends the parameter without restrictions for production operation in many KBs.
  • Mandatory for HCL support tickets – Anyone who opens a performance/hang ticket with HCL is usually asked to set DEBUG_THREADID=1 before further data is collected.
  • Companion parametersConsole_Log_Enabled, Console_Log_Max_Kbytes, Console_Log_Mirror, debug_outfile.
  • Spelling – In some HCL sources the parameter is written as Debug_ThreadID. notes.ini keys are case-insensitive for Domino — both spellings are equivalent.

Sources (HCL Product Documentation)