This chapter describes the visibility of transient workflow objects in queries and Stardust service methods.
Regardless of whether a process instance is transient or not it is
not recommended to modify a user involved in a currently running process
instance, since in these cases the outcome is undefined. Apart from that,
UserService
operations are not affected by transient process execution.
All
QueryService
methods operate against the persisted
Audit Trail Database exclusively. Hence any transient process
instances or running deferred processes do not influence any
Query Service method results. Transient processes never
change any query results, even after their completion.
Retrieving a process instance or its related data via API, e.g. via
WorkflowService
or
AdministrationService,
always
returns a snapshot of the currently executed process instance. After
completion it is completely gone, unless its deferred). Since a
transient process instance by definition is executed without waiting in a
defined state, e.g. a suspended activity instance, there is no means to
modify the process instance's state safely. If not using transient processes,
to perform a safe modification you had to first determine the current state
and afterwards modify based on the retrieved state. In case of transient
processes as soon as the state has been retrieved it might have already
changed. Therefore any outcome of modifying operations is undefined.
Please note that during execution transient as well as deferred
process instances are completely invisible, if the property
Carnot.Engine.Tuning.TransientProcesses.ExposeInMemStorage
is set to false . By default this property is true. For
details on this property refer to section
Tuning
of chapter
Server Side Properties.
During transient process instance execution recovery is unable to find transient
or deferred process instances, since they are invisible for
queries triggered by recovery. However, transient process execution
detects whenever a process instance needs to be recovered. In these cases
transient process instance execution for the process instances in question
is canceled and they are written to the database. From then on the
ordinary recovery mechanism may be applied.
These operations are working directly on the Audit Trail database. Hence,
transient process instances are completely invisible, deferred
ones are not visible until they are written to the database.