Storing Recovery Data (Magic xpi 4.5)
When you run a Magic xpi project, all of the information and data that is necessary for the proper management and operation of the recovery mechanism is automatically stored in the Space.
There are four recovery options for a flow:
-
None: There will be no attempt at recovery. Parallel tasks will not be stopped and will continue running as if there was no crash. Therefore, it is good practice to define a Recovery policy.
-
Abort: When the recovery policy is defined as Abort, the root flow is terminated following a call to a user-defined clean-up flow. Once the clean-up flow has concluded, the Abort process is complete. The clean-up flow is defined in the Flow Properties dialog box's Cleanup recovery flow property. The clean-up flow is called before the flow is aborted or restarted, which is defined in the flow's Recovery policy.
-
Restart: The behavior for the Restart policy is similar to Abort. The main difference is that the flow is restarted using the original data from the root flow. The Magic processing unit will change the message status to READY_FOR_USE, and this will be added to the pool of messages waiting to be handled.
-
Save Point: The Save Point option lets Magic xpi back up information in a flow up to a defined point (the Save Point). When you select this option, Magic xpi recovers the flow from the last Save Point reached in your root flow's linear branch.
Before each step is executed,Magic xpi checks to see if the step is defined as a Save Point. If the step is defined as a Save Point, the worker updates the Magic Space with the last Save Point or restarts the flow if no last Save Point exists or if that step was not reached. During the recovery process, the Magic processing unit will update the message with READY_FOR_USE and add the specific step based on the Save Point details. If the Save Point was defined after parallel workers were invoked, the parallel processes will not be executed.
The recovery object contains data such as flow variables, as well as a User BLOB, and previous Save Points in the same thread are overwritten.
Note:
|
-
Save Points are only relevant in the root flow and the linear path of the root flow. Any Save Points in child flows or parallel branches are ignored.
-
The best practice for using Save Points is when the execution involves third party calls, such as ecosystems, databases, and .NET steps.
|