Asynchronous Transaction Monitoring via Task Object Correlation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Asynchronous transactions in distributed systems, such as those using the .NET framework, are difficult to monitor due to the lack of correlation between threads handling different parts of a business transaction.
Innovation Solution
The technology monitors asynchronous transactions by tracking data and transitions within the .NET framework, specifically through the use of task objects and continuation method calls, correlating asynchronous method calls with distributed business transactions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If asynchronous transactions are monitored in a distributed system with multiple threads, then monitoring coverage is improved, but thread correlation and transaction tracking become more difficult
Solution Approach 1:
The patent introduces a correlation identifier as an intermediary element that is passed between threads during asynchronous method calls. This identifier acts as a mediator that connects the calling thread with the executed thread, enabling precise tracking of transaction flow across thread boundaries without requiring complex inter-thread communication mechanisms
Solution Approach 2:
The monitoring system is segmented into distinct components: an instrumentation layer that injects monitoring code into asynchronous methods, a data collection layer that captures method call information, and a correlation layer that uses identifiers to link transaction segments across threads. This segmentation allows each component to handle specific aspects of monitoring independently, reducing overall system complexity
2Reliability
If traditional monitoring methods are used in .NET framework, then synchronous transactions can be tracked, but asynchronous transactions cannot be properly correlated
Solution Approach 1:
The monitoring system dynamically adapts to different execution contexts by detecting whether a method call is synchronous or asynchronous. For asynchronous calls, the system dynamically creates and manages task objects with correlation identifiers, while for synchronous calls it uses traditional tracking methods. This dynamic behavior allows the system to maintain reliability across both transaction types
Solution Approach 2:
The monitoring framework implements a universal tracking mechanism that handles both synchronous and asynchronous transactions through a common interface. The correlation identifier system serves multiple functions: it acts as a transaction ID for synchronous calls and as a thread-linking key for asynchronous calls, making the monitoring system versatile across different execution models
Data Source
AI summary
The present technology may monitor an asynchronous transaction based on a custom exit point. Once an asynchronous method to be monitored has been identified, the transition framework may be tracked while executing the asynchronous method call. Within a .NET framework, monitoring may include tracking a task object, continuation method calls at the completion of a method, and tracking the continuation method as it executes other code. The asynchronous method may then be correlated within a business transaction using the returned task object data.


