JDBInsight
2.5 offers the ability to capture detailed profile
data of the transactional execution behaviour
of a J2EE/Java/JDBC application. The benefits
in trace timeline analysis are:
• Transaction/SQL Concurrency: With timeline information a performance engineer
can detect whether performance slow downs occur
under a certain level of heavy concurrency for
particular transactions patterns or SQL statements.
It is also possible to correlate high maximums
for both transactions and SQL statement with other
events or processing occurring within the servers
JVM such as garbage collection, waiting and blocking.
• Database Bound Transactions: Timeline analysis provides a visual clue of the
Java code execution periods within a transaction
that do not contain database activity. This helps
a performance engineer understand whether a transaction
is database bound or has other computational work
being performed within the transaction period.
With the timeline graphs engineers can determine
what parts within the transaction period result
in slow downs (long periods of non-JDBC activity)
without the performance impact typically associated
with Java code profilers.
• Sub Transaction Analysis: The transaction timeline graph helps identity
resource transactions nested (in terms of timeline
execution) within another resource transaction
execution period. Nested transactions create additionally
server resource requirements because of the need
to utilize extra connections during the suspension
of outer transactions. This suspension also results
in the low utilization of connections resources.
For EJB applications it can result in extra entity
bean instances being instantiated, loaded and
stored that have previously being accessed in
an outer transaction or adjacent child sub transactions.
• Debugging: The recorded timeline
data includes system generated object id’s
for JDBC resource instances allowing for debugging
of transaction executions at the instance level.
This data can help determine what particular instances
are being invoked on and whether object instances
are closed explicitly within the transaction they
were created in. The invocation data records creation
points for instances (the result column) as well
as close method calls (the target column). Additionally
exceptions are associated with instances instead
of methods or call stacks provided by other tools.
Screenshot #1 - Thread/Transaction
Timeline Analysis
Screenshot #2 - Transactions and Invocations

Screenshot #3 - Filtering

Screenshot #3 - Dynamic Monitoring