It is possible to monitor the execution of sql statements of a JDBC application using two open source tools: P6Spy (see http://www.p6spy.com/) and IronEye SQL (see http://www.irongrid.com/). P6Spy is, according to its web site, an open source framework to support applications that intercept and optionally modify database statements. It does so by acting as a JDBC proxy driver. IronEye SQL is a lightweight Java tool that provides statistics and various performance graphs of all SQL that flows between an application and a database. It in this instance, it acts as a Java Swing GUI frontend to P6Spy.
Jahia software, http://www.jahia.org/, provides a SQL Profiler, licensed under the Jahia Open Software License. The profiler is an alternative to the IronEye SQL tool.
Using IronEye SQL and P6Spy to monitor a DbForms application is quite easy. The P6Spy JDBC driver is inserted between DbForms and your actual JDBC driver class. Then, DbForms operations can be monitored by connection to P6Spy from IronEye SQL. The following checklist shows the steps needed.
Download and install P6Spy and IronEye SQL.
Copy the three JAR files
log4j-1.2.8.jar.jar into the
WEB-INF/lib directory of your
spy.properties file into
WEB-INF/classes directory of
your web application or include it into the JAR archive of your
application. An extract of a sample file is shown below.
# ---- module.log=com.p6spy.engine.logging.P6LogFactory #module.outage=com.p6spy.engine.outage.P6OutageFactory module.monitor=com.irongrid.monitor.server.MonitorFactory monitorport=2000 # oracle... realdriver=oracle.jdbc.driver.OracleDriver # are you sure you want to set me to true ? Have you read the docs ? deregisterdrivers=true # ----
Configure database access in
dbconnection element below
as a basic model. The key portion is the
<dbconnection isJndi = "false" isPow2 = "true" defaultConnection = "true" connectionProviderClass = "org.dbforms.conprovider.SingleConnectionProvider" conClass = "com.p6spy.engine.spy.P6SpyDriver" name = "jdbc:oracle:thin:@devel:1521:myDbService" username = "user" password = "passwd"/>
Start your JDBC web application.
Execute the IronEye SQL application and press the "connect" button to connect to P6Spy. As the web application produces queries, they will be visible through IronEye SQL.