Transactions in JVM
Transactions recorded in JVM can behave in two ways depending on whether or not the transaction originated in a browser with the Plumbr Browser Agent.
If the Browser Agent was present, the JVM processing the request joins the existing transaction. All the processing done by the server-side JVM(s) is then linked to the ongoing transaction as spans. In this case the outcome is the end-to-end transparency of the transaction throughout the infrastructure.
If no transaction is started in the end user’s browser, the transaction is started the moment it arrives to the JVM. This happens when:
- the browser triggering the request does not have the Plumbr Browser Agent attached
- the request is not made by a human using a browser, but by another system using the web services published by the JVM
- the inbound operation arriving to the JVM is not an HTTP request. To give you an idea – such transactions can be initiated by remote calls to EJB modules or Swing event listeners in Swing-based desktop applications.
The main benefit in adding the Java Agent to the monitoring stack is in more detailed root causes being exposed. Every user interaction being slow due to server-side issues would now be linked to the exact root cause in the JVM.