Transaction Management and Deep Dive

When an Enterprise finally gets the wakeup call when their applications are performing under par they start looking intoTransaction Monitoring (or Transaction Tracking/Tracing) solutions. One type of solution is the “Deep Dive” Java/.NET solution which is defined as those solutions that use Bytecode Instrumentations (or Java/.NET Hooks) in order to collect thorough code level metrics for J2EE/.NET experts. These Application Performance Management solutions are used throughout the entire lifecycle of the product; they are a strong tool for the developer, but a very weak tool for the production environment since they are unable to monitor all of the transactions on all tiers all the time due to very high overhead.

Who Offers These Solutions?

These solutions tend to be offered by the larger corporations:

  • CA Wily – Introscope
  • HP – TransactionVision
  • BMC – Application Problem Resolution (Identify)
  • Dynatrace – PurePath
  • Precise – APM

Overview

These tools provide deep diagnostics into Java/.NET applications – to the code level. They are used by J2EE/.NET experts in order to locate problems before deployment. These solutions are too low level for use by most operations teams and system administrators as they extract a glut of data and do not enable a high level view of the system, on the other hand, application teams rely on them for development, and they can be use in production to a certain extent in order to monitor synthetic transactions or a small percentage of the real transactions that are flowing through the system.

How they Work

Bytecode Instrumentations (or Java hooks) retrieve data from the nodes that are running J2EE/.NET applications. This is done by utilizing the class loading mechanism of the interpreter (JVM for J2EE or CLR for .NET) that in order to intercept specific classes ormethod calls within the application.

Applications

  • Gives J2EE/.NET experts insight into where the problems are
  • Used mainly in the development phase and pre-deployment
  • Can be used in production for a few percent of the transactions

Advantages

  • Gives developers deep insight into problems at the source code transaction data level
  • With the help of synthetic transactions, deep diagnostics can be performed during production
  • You can get a full method call, similar to a debugger

Drawbacks

  • Lengthy Implementation
  • Only works with certain environments
  • Cannot trace all transactions in real time
  • Not recommended for the production environment
  • Difficult for IT support staff to use
  • It only helps with Java or .NET
  • The solutions are not designed for a high level production view, they do not provide an extensive topology of the system
  • Lots of detailed data is collected. application owners and system administrators do not always know what to do with all of the information

Business Transaction Management

Although the list of drawbacks is long, the objective of this article is not to bash on this kind of solution (really, they will do wonders for your application development team), it is simply to help you understand that if you are looking for a solution that will cover all of your bases during production; these kinds of solutions won’t cut it (they provide up to 10% sampling for limited periods of time). These solutions cannot monitor the entire topology of each transaction even though they claim to be end to end, these traits are by design, and no amount of marketing hype will enable these products to solve all of your problems as they claim to do.