Is there any ODBC-ODBC Bridge tracing I can use for debugging my application?

The Easysoft ODBC-ODBC Bridge client and server both have a mechanism for creating a trace file. How this is turned on depends on the platform and whether you want a client or server trace file. A bitmask value defines the level of tracing output you get. Treat this as an undocumented feature, as the mechanism for initiating tracing, the bitmask values, and the trace file location may change. Remember also that the tracing output was written to help us debug ODBC-ODBC Bridge problems, so there is no documentation on the format or contents of the trace file. Having said this, the information is useful when debugging your application.

Some tracing levels generate a tremendous amount of output. Any kind of tracing will slow the client or server down significantly as the tracing output is flushed to the file on every write.

On Linux and UNIX platforms, turn on tracing by setting the Logging value in the Settings section of the odbc.ini file in the current working directory to a non-zero value. For example:

[DSN1]
attribute = value
.
.
.

{Settings}
Logging = 0xnnnnnn

The trace files you get are /tmp/esoobclient.log_PID or /tmp/esoobserver.log_PID.

On Windows, set the Logging value in the registry subkey HKEY_LOCAL_MACHINE\SOFTWARE\EASYSOFT ODBC-ODBC BRIDGE\CONFIGURATION\SYSTEM\SETTING. The trace files are esoobclient.log or esoobserver.log. The trace file location is set by the LogDir ODBC-ODBC Bridge server configuration option.

In both cases, the Logging value is a bitmask string. Use either hexadecimal (0x prefix) or decimal format. The available bitmask values are:

Value Description
0x1 Log function entry points. For example, the function called and the arguments passed to it. Generally useful for ODBC application developers.
0x2 Log function exit points. For example, return status values. Generally useful for ODBC application developers.
0x8 Special logging not covered by other bitmasks. It is unlikely much, if anything, of this will make a great deal of sense to anyone but Easysoft staff, as this flag outputs ODBC-ODBC Bridge internal information.
0x10 Octet lengths, indicator pointers, row status values, and other information in bound parameters, bound columns, or SQLGetData function calls.
0x20 Log internal ODBC-ODBC Bridge function entry and exit points depending on whether 0x1 or 0x2 are set.
0x40 Log calls made from the ODBC-ODBC Bridge client to the server or ODBC driver.
0x80 Log ODBC diagnostics, which may supplement any diagnostics output by your application. This creates odbc_bridgec_diags.txt (client) or odbc_bridges_diags.txt (server) in the LogDir directory.
0x100 Log query text in SQLPrepare or SQLExecDirect calls. Use this to check what your application is asking the ODBC driver to do.
0x200 Log the connection process. This shows the ODBC data source attributes passed to the ODBC driver.
0x400 Log attribute retrievals or changes. For example, SQLSetConnectAttr calls.
0x800 Logs what the ODBC-ODBC Bridge server does before the ODBC connection starts. This can generate a huge amount of output. The log file name is esoobstart.log. There is no ODBC information in this output.
0x1000 Log data that the ODBC-ODBC Bridge sends or retrieves.
0x2000 Output timing information. For example, the duration of an SQLPrepare and SQLExecDirect call.

Add the relevant values for the trace output you want.