An action is a process activity at thread level.
Actions are identified by a function principal.
If not the case, the actions are identified as ATBI.
Technically it is one or more related stacks involved in some activity execution.
Stacks can be in any state, including wait or pending wait (which make sense in any asynchronous activity model).
Stack relationship is subject to interpretation or really made effective depending if the Jeyzer Publisher is in play with action ids:
- Interpretation mode : stacks are linked based on their thread name
Jeyzer assumes that the consecutive stacks are related, which is often the case when your process starts to slow down. It is also valid when dealing with long running activities. - Effective mode : stacks are linked based on their Jeyzer action id
Action id is set through the Jeyzer Publisher API : when starting any important execution, the thread (the applicative code) will create an action context which contains a unique id.