Oracle® Fusion Middleware Type 4 JDBC Drivers for Oracle WebLogic Server 11g Release 1 (10.3.1) Part Number E13753-01 |
|
|
View PDF |
WebLogic JDBC Spy is a wrapper that wraps a WebLogic Type 4 JDBC driver. It logs detailed information about JDBC calls issued by an application and then passes the calls to the wrapped WebLogic Type 4 JDBC driver. You can use the information in the logs to help troubleshoot problems in your application. WebLogic JDBC Spy provides the following advantages:
Logging is JDBC 3.0-compliant, including support for the JDBC 2.0 Optional Package. WebLogic JDBC Spy also supports logging for supported JDBC 4.0 features.
Logging works with all WebLogic Type 4 JDBC drivers.
Logging is consistent, regardless of which WebLogic Type 4 JDBC driver is used.
All parameters and function results for JDBC calls can be logged.
Logging can be enabled without changing the application, but instead by changing the JDBC data source in your WebLogic Server configuration.
Note:
The WebLogic JDBC Spy implements standard JDBC APIs only. It does not implement JDBC extensions implemented in other WebLogic Type 4 JDBC drivers. If your application uses JDBC extensions, you may see errors when using the WebLogic JDBC Spy.To use WebLogic JDBC Spy with WebLogic Server, you add JDBC Spy attributes to the end of the URL in the JDBC data source configuration. Follow these instructions for modifying your data source configuration:
Before you start the server, add WL_HOME
/server/lib/wlspy.jar
to your CLASSPATH, where WL_HOME
is the directory in which you installed the WebLogic Server software.
In the WebLogic Server Administration Console or in the configuration file for your WebLogic domain, append the WebLogic JDBC Spy options to the data source URL. Enclose all JDBC Spy options in one set of parentheses; separate multiple options with a semi-colon.
In the Administration Console on the Domain Configurations > Data Sources, select the particular Data Source that you want to be spy enabled. Open the Connection Pool tab and add the spyAttributes
to the end of the existing URL. For example:
jdbc:weblogic:DB2://db2host:50000;spyAttributes=(log=(file)d:\spy.log;timestamp=yes)
Alternatively, in the datasource_name-jdbc.xml file, update the URL in the JDBC data source entry. For example:
<jdbc-driver-params>
<url>jdbc:weblogic:db2://bangpcdb2:50000;spyAttributes=(log=(file)db2-spy.out;load=weblogic.jdbc.db2.DB2Driver;timestamp=yes)
</url>
<driver-name>weblogic.jdbc.db2.DB2Driver</driver-name>
<properties>
<property>
<name>user</name>
<value>john</value>
</property>
<property>
<name>portNumber</name>
<value>50000</value>
</property>
<property>
<name>databaseName</name>
<value>wls</value>
</property>
<property>
<name>serverName</name>
<value>db2host</value>
</property>
<property>
<name>batchPerformanceWorkaround</name>
<value>true</value>
</property>
</properties>
<password-encrypted>{3DES}hqKps8ozo98=</password-encrypted>
</jdbc-driver-params>
Stop and restart WebLogic Server.
Table D-1 lists the options available for configuring WebLogic JDBC Spy. Use these options as attributes for the spyAttributes property for an XA driver or in the URL for a non-XA driver.
Table D-1 WebLogic JDBC Spy URL Attributes
Key-Value Pair | Description |
---|---|
log=System.out |
Redirects logging to the Java output standard. |
log=(file)filename |
Redirects logging to the file specified by filename. By default, WebLogic JDBC Spy uses the stream specified in DriverManager.setLogStream(). |
load=classname |
Loads the driver specified by classname. For example, |
linelimit=numberofchars |
The maximum number of characters, specified by numberofchars, that WebLogic JDBC Spy will log on one line. The default is 0 (no maximum limit). |
logIS={yes or no or nosingleread} |
Specifies whether WebLogic JDBC Spy logs activity on InputStream and Reader objects. When logIS=nosingleread, logging on InputStream and Reader objects is active; however logging of the single-byte read InputStream.read() or single-character Reader.read() is suppressed. This avoids the generation of large log files containing single-byte / single character read messages. The default is no. |
logTName={yes or no} |
Specifies whether WebLogic JDBC Spy logs the name of the current thread. The default is no. |
timestamp={yes or no} |
Specifies whether a timestamp should be included on each line of the WebLogic JDBC Spy log. |
See the notes following the example for the referenced text.
Example D-1 WebLogic JDBC Spy Log Example
All rights reserved.Foot 1 registerDriver:driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 2 *Driver.connect(jdbc:spy:{jdbc:weblogic:sqlserver://QANT:4003; databaseName=Test;}) trying driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 3 spy>> Driver.connect(String url, Properties info) spy>> url = jdbc:spy:{jdbc:weblogic:sqlserver://QANT:4003;databaseName=Test; OSUser=qauser;OSPassword=null12} spy>> info = {password=tiger, user=scott} spy>> OK (Connection[1])Foot 4 getConnection returning driver[className=weblogic.jdbcspy.SpyDriver, context=null,weblogic.jdbcspy.SpyDriver@1ec49f]Foot 5 spy>> Connection[1].getWarnings() spy>> OKFoot 6 spy>> Connection[1].createStatement spy>> OK (Statement[1])Foot 7 spy>> Statement[1].executeQuery(String sql) spy>> sql = select empno,ename,job from emp where empno=7369 spy>> OK (ResultSet[1])Foot 8 spy>> ResultSet[1].getMetaData() spy>> OK (ResultSetMetaData[1])Foot 9 spy>> ResultSetMetaData[1].getColumnCount() spy>> OK (3)Foot 10 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 1 spy>> OK (EMPNO)Foot 11 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 2 spy>> OK (ENAME)Foot 12 spy>> ResultSetMetaData[1].getColumnLabel(int column) spy>> column = 3 spy>> OK (JOB)Foot 13 spy>> ResultSet[1].next() spy>> OK (true)Foot 14 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 1 spy>> OK (7369)Foot 15 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 2 spy>> OK (SMITH)Foot 16 spy>> ResultSet[1].getString(int columnIndex) spy>> columnIndex = 3 spy>> OK (CLERK)Foot 17 spy>> ResultSet[1].next() spy>> OK (false)Foot 18 spy>> ResultSet[1].close() spy>> OKFoot 19 spy>> Connection[1].close() spy>> OKFoot 20
Footnote Legend
Footnote 1: The WebLogic JDBC Spy driver is registered. The spy>> prefix indicates that this line has been logged by WebLogic JDBC Spy.