The Derby Network client provides a tracing facility to collect JDBC trace information and view protocol flows.
There are various ways to obtain trace output. However, the easiest way to obtain trace output is to use the traceFile=path attribute on the URL in ij. The following example shows all tracing going to the file trace.out from an ij session.
ij>connect 'jdbc:derby://localhost:1527/mydb; create=true;traceFile=trace.out;user=user1;password=secret4me';
To append trace information to the specified file, use the traceFileAppend=true URL attribute in addition to traceFile=path.
For more information, see "traceFile=path attribute" and "traceFileAppend=true attribute" in the Derby Reference Manual.
Derby provides three ClientDataSource implementations. You can use the org.apache.derby.jdbc.ClientDataSource class on Java SE 5 and above (except Java SE 8 Compact Profiles), in applications that call JDBC 3 or JDBC 4.0 methods. You can use the org.apache.derby.jdbc.ClientDataSource40 class on Java SE 6 and above (except Java SE 8 Compact Profiles), in applications that call JDBC 4.1 or JDBC 4.2 methods. You must use the org.apache.derby.jdbc.BasicClientDataSource40class on Java SE 8 Compact Profile 2 or 3.
The default trace level is ClientDataSource.TRACE_ALL. You can choose the tracing level by calling the setTraceLevel(int level) method or by setting the traceLevel=value URL attribute:
String url = "jdbc:derby://samplehost.example.com:1528/mydb" + ";traceFile=/u/user1/trace.out" + ";traceLevel=" + org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS; DriverManager.getConnection(url,"user1","secret4me");
The following table shows the tracing levels you can set.
Trace Level | Value |
---|---|
org.apache.derby.jdbc.ClientDataSource.TRACE_NONE | 0x0 |
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTION_CALLS | 0x1 |
org.apache.derby.jdbc.ClientDataSource.TRACE_STATEMENT_CALLS | 0x2 |
org.apache.derby.jdbc.ClientDataSource.TRACE_RESULT_SET_CALLS | 0x4 |
org.apache.derby.jdbc.ClientDataSource.TRACE _DRIVER_CONFIGURATION | 0x10 |
org.apache.derby.jdbc.ClientDataSource.TRACE_CONNECTS | 0x20 |
org.apache.derby.jdbc.ClientDataSource.TRACE_PROTOCOL_FLOWS | 0x40 |
org.apache.derby.jdbc.ClientDataSource.TRACE _RESULT_SET_META_DATA | 0x80 |
org.apache.derby.jdbc.ClientDataSource.TRACE _PARAMETER_META_DATA | 0x100 |
org.apache.derby.jdbc.ClientDataSource.TRACE_DIAGNOSTICS | 0x200 |
org.apache.derby.jdbc.ClientDataSource.TRACE_XA_CALLS | 0x800 |
org.apache.derby.jdbc.ClientDataSource.TRACE_ALL | 0xFFFFFFFF |
To specify more than one trace level, use one of the following techniques:
TRACE_PROTOCOL_FLOWS | TRACE_CONNECTION_CALLS
~TRACE_PROTOCOL_FLOWS
For more information, see "traceLevel=value attribute" in the Derby Reference Manual.