JDBC trace configuration

If your application displays JDBC-related exception messages, activate the JDBC trace service. The resulting log text can help you identify the problem.

[AIX Solaris HP-UX Linux Windows]Turn on tracing for most database JDBC implementations through the administrative console; see the topic, Enabling trace at server startup for instructions.

This method activates JDBC trace for all applications that run in the server you specify. Identify your database type by selecting the trace group WAS.database and typing one of the following trace strings in the console:
Trace string for JDBC drivers of DB2® databases.
See the following DB2 database sample:
Note: To use the Oracle trace string and sample, you must complete the actions in the next section, Provider-specific configuration.
Trace string for JDBC drivers of Oracle databases.
See the following Oracle database sample:
Trace string for JDBC drivers of Derby databases.
Trace string for JDBC drivers of Informix® databases.
Trace string for JDBC drivers of Microsoft SQL Server databases.
Trace string for JDBC drivers of Sybase databases.
Trace string for other JDBC drivers.
Multiple JDBC drivers require that you set trace differently, at the data source level. These drivers include:
  • Microsoft SQL Server JDBC driver
  • DataDirect Connect for JDBC driver for MS SQL Server
Configuring trace for these drivers through the WAS.database group results in incomplete trace information. The application server sets trace for the group at the server level, causing the trace service to begin only after your application establishes an initial connection. Because that first connection does not carry trace information, re-use of it is never tracked. Consequently the application cannot accurately match trace information to connection use.

Set trace for the previously mentioned JDBC drivers through data source custom properties. For example, use the spyAttributes custom property to enable JDBC trace for the DataDirect Connect for JDBC driver. Consult your driver documentation for details on the custom property that enables trace for your JDBC implementation.

Provider-specific configuration

Some JDBC providers have custom properties and configuration settings that you can use to tweak their trace settings.
  • DB2 data sources
    The custom properties for a data source with DB2 Data Server Driver for JDBC and SQLJ are:

    The possible values for traceLevel are:

    • TRACE_NONE = 0
    • TRACE_SQLJ = 1024
    • TRACE_XA_CALLS = 2048
    • TRACE_META_CALLS = 8192
    • TRACE_TRACEPOINTS = 262144
    • TRACE_ALL = -1
    Avoid trouble: Trace of Statement calls will expose the user data in sets to the PreparedStatement objects, and Trace of ResultSet calls will expose data returned in gets from the ResultSet objects.
    Specifies to integrate the DB2 Data Server Driver for JDBC and SQLJ trace with the application server's trace function:
    • If you do not set the value, traces are integrated.
      If you use integrated trace, you can dynamically enable or disable trace by setting the following property in the application server's trace specification at run time:
    • If you set the traceFile property to a valid path name for a file, then the Data Server Driver trace is written to the specified file regardless of the application server's trace specification.
    Specifies to append to or overwrite the file that is specified by the traceFile property:
    • To append to the current file, set the property to true.
    • To overwrite the current file, set the property to false.
    Avoid trouble: If you change the values for traceLevel, traceFile, or traceFileAppend, then the you must restart the application server to instantiate new data source objects with the changed settings.
  • Microsoft SQL Server for JDBC driver

    For more information about enabling logging in the Microsoft SQL Server JDBC Driver, see the documentation from Microsoft.

    However, instead of specifying the logger programmatically or by modifying the logging.properties file (as would be done for standalone Java™ apps), set the logging information within the application server trace string. For example, the following trace specification combines both the application server JDBC trace with Microsoft SQL Server JDBC Driver logging:

  • Oracle JDBC driver tracing configuration
    1. Ensure you are using the debug version of the Oracle JDBC driver, which is the version ending with _g. For example, if you were using the ojdbc8.jar file, replace it with the ojdbc8_g.jar file. If you are using multiple providers, ensure that all Oracle JDBC providers use the option Isolate classloader.
    2. Enable the oracle.*=all trace string, which enables all Oracle JDBC driver trace at the most detailed level.
    3. Activate the debug library by setting the following JVM argument on the application server:

    For more information about configuring the Oracle JDBC driver tracing configuration, see the IBM® Support documentation.

Additional resources

If the JDBC tracing service cannot help you isolate and fix your problem, consult the IBM Support website for WebSphere® Application Server. Use the site search function to find current information on known problems and their resolutions. Locating the proper troubleshooting tip can save time that you might otherwise spend on opening and tracking a PMR.