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