Bytecode Instrumentation Agents for Distributed Transaction Tracing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional performance monitoring and tracing tools are inadequate for tracking transactions across computing boundaries, including mainframe environments, as they typically focus on isolated applications and struggle to provide end-to-end visibility, which is essential for identifying performance issues in distributed systems.

Innovation Solution

A performance management system that injects agents into virtual machines to intercept and instrument bytecode, capturing metadata and placing sensors to track method invocations and interactions across threads and virtual machines, allowing for correlation of transaction data across multiple execution environments without modifying source code.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If conventional performance monitoring tools are used to trace transactions, then the scope is limited to isolated applications, but end-to-end transaction visibility across distributed systems and mainframe environments cannot be achieved

Engineering Contradiction:
Improvetransaction tracing precisionVSAvoidcross-platform tracing capability
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The system segments the distributed transaction tracing problem into multiple independent components: bytecode instrumentation agents for individual applications, mainframe exit point interceptors, and a central correlation engine. Each component operates independently within its scope but contributes to the overall end-to-end transaction visibility by collecting and forwarding trace events with correlation identifiers that link them across platform boundaries.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The correlation engine serves as an intermediary that receives trace events from multiple sources including bytecode-instrumented applications and mainframe exit point interceptors. It correlates these events using unique transaction identifiers to reconstruct complete end-to-end transaction paths across distributed systems and mainframe environments, enabling comprehensive monitoring without requiring direct integration between all system components.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of information

If bytecode instrumentation is used to trace transactions across virtual machines, then end-to-end visibility is achieved, but system complexity increases due to agent injection and metadata correlation requirements

Engineering Contradiction:
Improvetransaction trace information completenessVSAvoidmonitoring system complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The system performs preliminary action by injecting bytecode instrumentation agents into virtual machines before transaction execution begins. These agents pre-instrument the application bytecode to automatically capture trace events with embedded correlation identifiers, ensuring that complete transaction information is collected from the start without requiring complex real-time correlation logic at each monitoring point.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The correlation engine implements a universal interface that accepts trace events from multiple sources including bytecode-instrumented Java applications, .NET remoting systems, and mainframe exit point interceptors. By using a common event format with standardized correlation identifiers, it can correlate transactions across diverse platforms and technologies without requiring source-specific correlation logic, reducing overall system complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Measurement precision

If source code modifications are made to enable transaction tracing, then detailed method invocation tracking is achieved, but applicability to existing systems without code access is reduced

Engineering Contradiction:
Improvemethod invocation tracking precisionVSAvoidsystem deployment ease
Core Design Contradiction:
Measurement precisionVSEase of manufacture

Solution Approach 1:

The system replaces the mechanical approach of modifying source code with bytecode instrumentation technology. Bytecode agents are injected into the virtual machine's class loading process, transforming application bytecode dynamically to insert trace event generation code. This substitution enables detailed method invocation tracking without requiring access to or modification of the original source code, allowing deployment in existing systems where source code is unavailable or cannot be modified.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS9311214B2System and methods for tracing individual transactions across a mainframe computing environment
Publication Date: 2016.04.12 DYNATRACE LLC
  • US9311214B2 patent drawing
  • US9311214B2 patent drawing
  • US9311214B2 patent drawing

AI summary

A performance management system is provided for monitoring performance of an application across a distributed computing environment, including within one or more mainframe computers. In the mainframe environment, a transaction manager is configured to receive a transaction request from an application executing remotely from the mainframe computer. An event agent is invoked via a user exit by the transaction manager and operates to detect events caused by the handling of the transaction by the transaction manager. Upon detecting such events, the event agent generates event messages for select events associated with the transaction, where the event message includes identifying information for the transaction. A translator agent is configured to receive the event messages from the event agent and transmit the event data record to a server located remotely from the mainframe computer, where the event data record includes the identifying information for the transaction.