Stardust provides an audit-trail persistence mode concept which allows to execute process instances with varying approaches regarding persistence. A general configuration option is provided allowing to explicitly turning on the feature of transient processes, which is turned off per default. Process definitions can be flagged as transient candidates. Certain conditions in the model design lead to a switch from a transient processing to a normal processing.
The following persistence modes are provided:
| Persistence Mode | Key Properties |
|---|---|
| ENGINE_DEFAULT | Used if nothing is defined explicitly, meaning that it falls back to the standard behavior: In case of an asynchronous process instance, it will inherit the audit trail persistence of the originating process instance, otherwise it will be immediate effectively. |
| TRANSIENT | The process and potentially all its sub-processes will be executed transiently and audit trail data will only be kept in an in-memory cache for the time until the process instance completes. Upon completion of the process hierarchy, all audit trail data will be discarded for this process instance and no audit trail will be persisted to the database. Refer to chapter Transient Processes for details. |
| DEFERRED | Running in this mode the process instance will be written to the Audit Trail only after the process instance has been completed. Refer to section Deferred for details. |
| IMMEDIATE | The audit trail will be persisted to the audit trail database directly and synchronously along with activity thread processing. Refer to section Immediate for details. |
Refer to the following sections for details on the different persistence modes.
Transient processes keep instances of the process in-memory only during the course of execution. No audit trail is persisted at all during or after the execution of the process instance. The corresponding objects are created during process execution and are available in the context of the activity threads running for that process instance. Refer to chapter Transient Processes for details on transient processes.
All execution aspects of persistence mode DEFERRED are identical to the case TRANSIENT described in chapter Transient Processes with one exception:
When a process hierarchy executed in persistence mode DEFERRED is completed, the audit trail data kept in the transient cache for that process hierarchy will not be discarded but will be persisted to the audit trail database. The audit trail data will only be kept in an in-memory cache for the time until the process instance completes. Upon process completion the data will be stored to the audit trail data base.
In audit trail persistence mode IMMEDIATE, the audit trail data are synchronously inserted or updated in the database as the activity threads belonging to the process instance in question create or modify activities, data values and related objects during process execution. This is the default mode.
All database operations are performed synchronously and in transactional isolation as an activity thread progresses. When an activity thread terminates, all database changes are persisted.
The persistence mode can be set via one of the following options:
The property page of process definitions in the Stardust modeler provides you with a checkbox to choose one of the persistence modes described in section Persistence Modes. For details on the modeler settings refer to section Audit Trail Persistence of chapter Working with Process Definitions.
The global server-side property
Carnot.Engine.Tuning.SupportTransientProcesses
is provided to determine whether transient processing is available at all
and how the corresponding model properties are handled. The following four
values are possible:
on - is the prerequisite for executing process instances
transiently. The process definition modeling property determines how it
is executed.alwaysTransient - all process instances will be executed
transiently, if allowed by the process definition's' topology. This
does not depend on the corresponding modeling property of the
underlying process definition.alwaysDeferred - all process instances will be executed
with deferred persistence. The process instance will not be persisted
until it has been completed, if allowed by the process definition's'
topology. This does not depend on the corresponding modeling property
of the underlying process definition.off - disables the Transient Process Instance
functionality globally and the process definition modeling property as
well as the process instance runtime property are meaningless.