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 j
avax.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>