JMS Trace Extension
The JMS trace extension traces and profiles invocations on objects implementing interfaces defined in the JMS package javax.jms.*. The connection factory (entry point) must be retrieved via a JNDI lookup. JXInsight will only proxy instances created via method invocations on the initial connection factory instance or objects created (directly or indirectly) via the connection factory.



SolarMetric Kodo JDO Trace Extension
The Kodo JDO trace extension traces and profiles invocations on instances of the javax.jdo.PersistenceManager, javax.jdo.Query and javax.jdo.Extent as well a recording notifications of Instance Lifecycle events. The trace extension is highly configurable in terms of level of tracing, contextual information appended to model, and aggregation of traces.

This extension can be installed by setting the following property in the kodo.properties file:

kodo.PersistenceManagerImpl=com.jinspired.jdbinsight.trace.ext.jdo.kodo.PersistenceManager

The JXInsight class extends from the default Kodo persistence manager implementation class which is standard plug-in capability within the Kodo product.



Logging Trace Extension
The logging (java.util.logging and log4j) trace extension allows for the inclusion of important log events or records in the profile snapshot . This is useful when analysing an exported snapshot from a benchmark test run and there needs to be some degree of confidence in the test run such that no exceptions perturbed the performance figures.



JDBC Trace Extension
The JDBC trace extension traces and profiles invocations on data sources, connections, statements, and result sets. This is different from JDBInsight because in a normal J2EE environment the container provides a proxy layer between the user code and underlying vendor JDBC driver and data sources. With this trace extension users can profile the containers managed JDBC layer including connection pools with bound buffers.



JTA Trace Extension
The JTA trace extension traces and profiles invocations on on JTA UserTransaction instances retreived via a JNDI InitialContext lookup.




Performance & Footprint
Performance improvements across all modes, perspectives, views and graphic visualizations when working with medium to large models.
Performance improvements in timeline graphical view when displaying very large models (+200,000 records)
Memory footprint reduction for all loaded snapshots

Automatic Cluster Creation and Server Registration

Added new system properties to console to provide the ability for servers to be automatically added to console tree view via UDP broadcast messages
  -Djdbinsight.console.servers.defaultcluster=[name of cluster]
  -Djdbinsight.console.servers.exclude.hostnames=[comma separated list of hostnames]

Profile Traces Perspective Enhancements
Added clock time and count columns to traces table view for remote traces (R), local transactions (T), and local JDBC interceptions (J)
Added clock time and count columns to traces table view for remote transaction (RT) and remote JDBC interceptions (RJ)
Added new trace table displaying the list of descendent (direct and indirect) traces for the selected trace

Timeline Traces

Added traces table view to timeline views with synchronization between tables and graphical views
Added callstack combo box to traces table view in timeline mode
JXInsight traces added to timeline graphic with transactions and JDBC operations layered ontop

Distributed Traces Visualization
Added visualization (shaded rectangle area) to the timeline graphic mode showing for the current selected trace associated remote server side traces. The screenshot below shows a selected client trace and the corresponding server side traces as well as a JDBC transaction (single pixel bracket line) and SQL select statement execution (yellow box). This visualization is extremely helpful in breaking down a client side trace by network latency (client request and server response), server side processing, database transaction execution, and post server response processing. Note: This is only possible when using a cluster of client and server processes within the console or alternatively exporting each individual timeline snapshot and later merging into a single one.



Statistical Distributions
Added Distributions Xml view to transactions, sql, resources and traces perspectives
Added system property to configure whether zero value measurements are excluded from distributions
   jdbinsight.server.profiler.distributions.zeros.exclude=true|false (default is true)

 
 
General Server Enhancements

Memory footprint reduction for large J2EE applications with high volume of tracing
Call stack filtering by default excludes methods with declaring classnames ending with _Stub or POAInvocationHandler
Exceptions thrown by traced methods (EJB, JDBC, JMS, JTA, and CORBA) are now added into the snapshot profile trace stack as leaf nodes of the active traced method. To include or exclude exceptions from the profile snapshot specify the following system property:
   -Djdbinsight.server.tracer.exceptions.include=true|false (default is true)
Added 2 server system properties to restrict the proxying of EJBHomes and DataSources retrieved via InitialContext lookups based on the direct or indirect caller classes. Each property takes a comma separated list of classname prefixes.
   -Djdbinsight.server.tracer.ext.jndi.filter.callers.excludes=
   -Djdbinsight.server.tracer.ext.jndi.filter.callers.includes=
The caller search continues until either an exclude or an include is matched thus it is recommended that when an exclude is specified that an corresponding include is specified so as to ensure fast determination.
Note: Borland Application Server customers should specify the following JVM parameters and properties
-Xrunjdbinsight:v=t -Djdbinsight.server.tracer.ext.jndi.filter.callers.excludes=com.inprise.ejb.cmp -Djdbinsight.server.tracer.ext.jndi.filter.callers.includes=<insert application package namespace>