A single control flow can only execute one user transaction at a time. Each user transaction definitely starts in one single control flow (the one, the GUI of the application is running in). Then - depending on the type of the transaction - it might completely be executed in this control flow or new control flows might be added. Typically, only short running transactions will be executed in the control flow of the GUI, because otherwise no more user transactions can be started while the transaction is running (the GUI is "frozen").
If the complete user transaction is executed within a single control flow, a correlation can very easily be achieved: The measurement agent simply determines the identifier of the current control flow at the time the transaction starts. Every subsequent measurement taking place in the same control flow then must belong to the same transaction until the end of the transaction. When control returns to the GUI, the measurement agent must be informed, that the transaction is not running anymore.
Different ways of UTA execution
As can be seen from the figure, there are essentially two ways to add a new control flow to the execution of a user transaction: A new control flow could be started or an existing one could be activated. The following paragraphs explain, how a correlation of measurements can be achieved in these two cases.