Debug Oracle JDBC connectionTag(s): JDBC
To get Oracle JDBC log output, you must use the oracle driver debug JAR files (in your classpath), which are indicated with a "_g" in the file name, ex. ojdbc5_g.jar.
Then you need to enable java.util.logging (since Oracle 10/JDK1.4)to see the activities
java -Doracle.jdbc.Trace=true -Djava.util.logging.config.file=c:/myapp/oracledebug.properties MyClass
handlers = java.util.logging.FileHandler # or can be handlers = java.util.logging.ConsoleHandler java.util.logging.FileHandler.pattern = c:/myapp/jdbc.log java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter # or can be java.util.logging.FileHandler.formatter = java.util.logging.XmlFormatter oracle.jdbc.driver.level = FINE # Uncomment and/or change the levels for more detail #oracle.jdbc.connector.level = FINE #oracle.jdbc.internal.level = FINE #oracle.jdbc.datum.level = FINEST #oracle.jdbc.adt.level = FINEST #oracle.jdbc.conversion.level = FINEST #oracle.jdbc.adt.level = FINEST #oracle.jdbc.thin.level = FINEST #oracle.jdbc.datum.level = FINEST #oracle.jdbc.kprb.level = FINEST #oracle.jdbc.pool.level = FINEST #oracle.jdbc.xa.level = FINEST #oracle.jdbc.sqlj.level = FINEST #oracle.jdbc.oci.level = FINEST #oracle.jdbc.jpub.level = FINEST # Category definitions (and corresponding levels) are listed in the following: # # USER_OPER JDBC API level tracing. # INFO (expected volume: low) # # PROG_ERR Program error (eg. an unexpected value encountered # SEVERE in a switch statement). Messages of this category # is not maskable. # (expected volume: low) # # ERROR Error conditions that usually lead to catastrophic # SEVERE or unrecoverable results. Messages of this # category is not maskable. # (expected volume: low) # # WARNING Error conditions that are usually recoverable. # WARNING Note that the module and sub-module filters do not # apply to messages of this category. See also # enableWarning(). # (expected volume: low) # # FUNCTION Function entry/return information. # FINE (expected volume: medium) # # DEBUG1 High-level debug information. # FINER (expected volume: medium) # # DEBUG2 Detail debug information. # FINEST (expected volume: high) # # SQL_STR SQL string # CONFIG (expected volume: low)
For OCI connection, it's a little bit different.
If you use the OCI driver, you can enable Net8 tracing on both the client and the server. Keep in mind, however, that enabling Net8 tracing translates into a substantial performance hit.
To enable client tracing, you add four parameters to your sqlnet.ora file, which is located in your $ORACLE_HOME\network\admin directory.
TRACE_LEVEL_CLIENT = SUPPORT TRACE_DIRECTORY_CLIENT = c:\oracle\trace TRACE_UNIQUE_CLIENT = ON TRACE_FILE_CLIENT = SESS
0 or OFF 4 or USER 10 or ADMIN 16 or SUPPORT
To turn tracing on and get the most amount of information, specify the following:
TRACE_LEVEL_CLIENT = SUPPORT
To turn tracing off, which you definitely want to do after your debugging session is complete, use 0 or OFF:
TRACE_LEVEL_CLIENT = OFF