Enable auditing of multi-threaded file operations

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX


The SDMS_AUDIT_SRV environment variable enables auditing of file operations on a threaded Windows program and defines the path and name used for generating auditing log files.

The full path and name used to generate the log filenames. (Logicals are not allowed.)

SDMS_AUDIT_SRV should be used when multiple individual file operations are expected, such as client connections to a server or different I/O threads of a threaded program.


Use SDMS_AUDIT_SRV instead of SDMS_AUDIT on Windows (even in non-server situations) to audit threaded and .NET programs.

When auditing services such as dbssvc, xfServerPlus, xfServer, .NET services, or the SQL Connection OpenNet server, the system environment must be updated (and on Windows, the system must be rebooted) before the service is started.


Use of this environment variable slows down file I/O operations significantly, and it should not be used on a production machine. Operations are only logged on the system where physical file I/O occurs.

When SDMS_AUDIT_SRV is set, the name of the audit file created for each thread or client connection has the following format:





where path\name is the value of SDMS_AUDIT_SRV, threadID is the thread ID, and time is the time the log was started, in the form hours, minutes, seconds and microseconds. (Trailing zeros in the microseconds value are omitted.)



where path/name is the value of SDMS_AUDIT_SRV and PID is the process ID of the connected server.

The environment.

Synergy DBMS, xfODBC

On Windows, the following example creates one audit file named c:\temp\audit_threadID_time for each thread, resulting in files with names like c:\temp\audit_6720_12100613:

set SDMS_AUDIT_SRV=c:\temp\audit

On UNIX, the following example creates one audit file named /usr/tmp/audit_PID for each client connection, resulting in files with names like /usr/tmp/audit_30662: