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.