This module reviews the usage of the checkpoints within a given process definition. The list of issues that may be raised are explained hereafter and these are:
analyzers.logic.checkpoint.checks = HighCheckPointRatio, UnnecessaryRedundantCheckpoints, NoneRepeatableCheckpointExecution, CheckpointFarAfterProcessStart, StarterWithNoCheckpoint, ProcessNotAlwaysCheckpointed, SpawnedWithNoCheckpoint
This issue is raised when there are too many checkpoints in a Process Definition in comparaison to the number of activities.
By default the threshold value is set to 0.25 via the following line:
analyzers.logic.checkpoint.ratio = 0.25
Changing the value within that line will impact the issue. This issue can be deactivated by removing the HighCheckPointRatio from the property analyzers.logic.checkpoint.checks.
This issue is raised when there are multiple checkpoints that are executed in parallel or in sequence. In both cases, there are too many checkpoints.
This check isn't configurable, you can only deactivate it by removing the UnnecessaryRedundantCheckpoints from the property analyzers.logic.checkpoint.checks.
This issue is raised when a checkpoint is executed in parallel of another activity. As there is no guarantee in which order both activities will be executed by the Process Engine, this could lead to none repeatable behaviour in the event of failure. As a result it will be difficult for a developer to locate a defect identified in production.
This check isn't configurable, you can only deactivate it by removing the NoneRepeatableCheckpointExecution from the property analyzers.logic.checkpoint.checks.
This issue is raised when a checkpoint is executed a long time after the process starter. Generally it is not a good idea to have a checkpoint far away from the process starter as the Process Engine may fail in between.
This check isn't configurable, you can only deactivate it by removing the CheckpointFarAfterProcessStart from the property analyzers.logic.checkpoint.checks.
This issue is raised when there is no checkpoint in a process definition that has a process starter. In general you should consider introducing a checkpoint in the event of a failure of a Process Engine.
This check isn't configurable, you can only deactivate it by removing the StarterWithNoCheckpoint from the property analyzers.logic.checkpoint.checks.
This issue is raised when not all execution paths go through a checkpoint from the start activity to the end activity.
We believe that it is rather exceptional for a Process Definition to have an execution path with no checkpoint.
This check isn't configurable, you can only deactivate it by removing the ProcessNotAlwaysCheckpointed from the property analyzers.logic.checkpoint.checks.
This issue is raised when a process is spawned without any checkpoints. In general it is not a good idea to spawn a process without checkpointing it, if the Process Engine fails then the process will not be restarted when the engine restarts.
This check isn't configurable, you can only deactivate it by removing the SpawnedWithNoCheckpoint from the property analyzers.logic.checkpoint.checks.