XA Transactions Analysis: The transaction perspective focuses attention on JDBC transactions (global and local, xa and non-xa). It is one of the most important performance aspects of J2EE applications. Tuning individual SQL statements can be productive initially but it is not always possible to control the type of statements issued to the database because of delegation to a persistence technology such as JDO, CMP or Hibernate.

In the transaction perspective attention is given to the sequence of calls made during a transaction. Is the resource transaction consistent with the user transaction semantics? Is the number of statements executed within a transaction excessive and/or redundant? Is the interaction with the database via SQL commands not efficient when viewed at the transaction level? An example would be the retrieval of a collection of EJB’s by Primary Key’s followed by the loading of each EJB instance by a separate select row statement which occurs with BMP EJB find calls and some CMP configurations.



Exception Monitoring:
SQLExceptions are captured along with contextual information such as SQL statement, call stack and exception message. The failure statistics are updated every time an intercepted method call throws an exception. The statistics reflect the execution statistics of executions that have thrown exceptions. This is useful when a comparison is required for timing information related to successful and failed transactions or query executions. Some J2EE applications can routinely throw SQLException for high load database systems coupled with optimistic locking/concurrency configuration.



New! Call Trace Analysis:
JDBInsight's call trace analysis supports the tracking off database interactions from a top-down (call stack->sql->database object) or bottom up approach (database object -> sql -> call stack). The calls perspective provides a visualization of all intercepted JDBC API method calls occurring in a profiling period. The perspective helps track method calls across different architectural layers inside a single JVM and across multiple databases. The JDBInsight console uses the classification engine to Java call stack methods into application execution partitions. Classifications are assigned to particular partitions. The partitions are:

Presentation: Java Servlets, Swing, and JSP
Process: Workflow and business logic technologies such Session Beans, Message Driven Beans, Struts
Persistence: Persistence technologies such as Entity Beans, JDO, and Hibernate
Database: Databases, Tables and Columns accessed by SQL statements executed by the JVM or multiple JVM’s when used in the analysis of a cluster. The JDBInsight console will parse all SQL statements and attempt to determine the database objects accessed.



Flexible Cluster Monitoring: The JDBInsight console can retrieve profile information across multiple machines and Java processes via a user-defined cluster. JDBInsight is not restricted to a particular application server's clustering technology. Simply create a cluster within the console attach server processes from multiple machines (even different application server technology) and take a snapshot. The console will aggregate multiple profiles into a single model for analysis while still providing the ability to look at each server process individual profile.



XML and Graphics Exports:
The console includes XML views to support the generation of custom performance reports in external tools using transformation engines. Additionally the console provides the ability to copy large visualizations to the clip board or external filesystem for embedding in reports.



Merge Multiple Snapshots: The JDBInsight console can merge multiple performance snapshots files into a single snapshot file. Using the terminal add-on a user can configure the exporting of snapshots at fixed intervals from multiple servers to the file system and then later merge them within the console.



Easier Server & DataSource Configuration:
Added server system property -Djdbinsight.server.jdbc.interception.callstack.filters.config=${file-path}, which provides the ability to override the default call stack filter configuration shipping with the product. A sample of the existing config file can be found in ${install-root}/filters.
Added system property, -Djdbinsight.properties.config=${path-to-file}, to reduce the size of command lines and reuse configurations across different server startup scripts. Users should now store JDBInsight specific settings in a config file. A sample config file with default values can be found in ${install-root}/properties.
Added javax.sql.ConnectionPoolDataSource and javax.sql.XADataSource implementation classes. com.jinspired.jdbinsight.drivers.jdbc2.PropertiesConnectionPoolDataSource and com.jinspired.jdbinsight.drivers.jdbc2.PropertiesXADataSource, is the preferred proxy deployment mechanism. Both classes load their configuration of a vendor connection pool datasource class from a properties file located at a specified URL.


View Improvements: The console has had many UI enhancements including:

Embedded bar charts, color encoding, max value indicators, image exporting.


Table thumbnails display color encoding of numeric cell values based on percentage to column maximum value. Additionally Java class and method tooltips providing meta information (super classes, interfaces, classifications).


Formatted SQL tool tips that indent, inserts new lines for increased readability, and remove additional whitespacing.


Formatted time tooltips.