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][IBM i]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:
  • com.ibm.ws.database.logwriter Trace string for databases that use the GenericDataStoreHelper. You can also use this trace string for unsupported databases.
  • com.ibm.ws.db2.logwriter Trace string for DB2® databases.
  • com.ibm.ws.oracle.logwriter Trace string for Oracle databases.
  • com.ibm.ws.derby.logwriter Trace string for Derby databases.
  • com.ibm.ws.informix.logwriter Trace string for Informix® databases.
  • com.ibm.ws.sqlserver.logwriter Trace string for Microsoft SQL Server databases.
  • com.ibm.ws.sybase.logwriter Trace string for Sybase databases.
A few 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 corrupt 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:
    traceLevel

    The possible values for traceLevel are:

    • TRACE_NONE = 0
    • TRACE_CONNECTION_CALLS = 1
    • TRACE_STATEMENT_CALLS = 2
    • TRACE_RESULT_SET_CALLS = 4
    • TRACE_DRIVER_CONFIGURATION = 16
    • TRACE_CONNECTS = 32
    • TRACE_DRDA_FLOWS = 64
    • TRACE_RESULT_SET_META_DATA = 128
    • TRACE_PARAMETER_META_DATA = 256
    • TRACE_DIAGNOSTICS = 512
    • TRACE_SQLJ = 1024
    • TRACE_XA_CALLS = 2048
    • TRACE_META_CALLS = 8192
    • TRACE_DATASOURCE_CALLS = 16384
    • TRACE_LARGE_OBJECT_CALLS = 32768
    • TRACE_SYSTEM_MONITOR = 131072
    • 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.
    traceFile
    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:
      WAS.database=all
    • 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.
    traceFileAppend
    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.

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.