Child case status not updated to resolved
You observe that work objects which successfully complete a flow and should have a "Resolved" status are present in the database in an unresolved state. Ancillary objects (such as Covers) believe the work object has been closed, and the work object history shows the Resolution to be the last step taken on the work object.
Steps to Reproduce
It is an intermittent issues.
The root cause of this problem is a defect in Pegasystems’ code/rules. There are two settings in prconfig (present since the 4.2 series) which control automatic lock-retry attempts by the Engine when a lock is requested. The default setting is to attempt to get the lock 3 times, with 0.25 second wait intervals between each attempt. In the 6.3 series, "optimistic locking" was added as a performance feature. The combination of these two features has resulted in a defect in which the work object can be retrieved from the database, and the first attempt (but not the subsequent attempt) for the lock fails. When the retry achieves the lock, the work object in the database may now be different from the work object that the running process has, as the running process retrieved that copy of the work object prior to the lock. When this happens, stale data can overwrite the most recently written data.
This issue is resolved through the following local change: Of the two settings in prconfig, the one that allows a retry when the lock is not gotten should be reset so that no retries are performed. This prevents a stale copy of the work object from being used. The setting should be changed from a value of 3 to a value of 1:
<env name="/database/maxlockattempts" value="1"/>
0% found this useful