Posted: 16 Oct 2019 9:49 EDT Last activity: 18 Oct 2019 7:27 EDT
Purge/Archive Flow failing to update archive work object for next execution
We have scheduled a Purge/Archive configuration to execute every 30 days. This successfully creates a work object of type PegaAccel-Management-Archival and the flow rule (ProcessArchival) is setting pyCalculatedGoal property so that the flow is resumed by the Service Level agent at the scheduled time. Our work objects are then successfully archived and purged from our DB however the flow then fails when it attempts to re-calculate and save the revised pyCalculatedGoal on the archive work object with error "Save, Delete or Commit has failed because lock "PEGAACCEL PXMA-36" is not held" (which can be seen in the SLA SYSTEM-QUEUE-SERVICELEVEL instance). We believe this is due to a failure in Activity pzBatchPurgeArchive which doesn't have a lock on the archive work object. We have made sure that the archive work object is not held by any other user at the time the flow attempts to update it.
Earlier in 8.1.1, we observed that lock on the PEGAACCL work object is getting released in the commit step of pzBatchPurgeArchive activity. Later in the execution RecalculateAndSave activity is trying to save the WO and exception is getting raised. This issue was because of the commit step in the pzBatchPurgeArchive.
This lock related issue fixed in 8.1.6 and 8.2.3. Can you please perform agent trace with locking event enabled and find at which step actually lock is getting released so that you can co relate with the above issue.
I've traced the agent and can see the lock on the Archive work object is being released in step 4 of pzBatchPurgeArchive (Pega-ProCom 08-01-01). As predicated, RecalculateAndSave activity is failing in step 6 with error 'Save, Delete or Commit has failed because lock "PEGAACCEL PXMA-36" is not held'. You mentioned it was fixed in 8.1.6 and 8.2.3. We're running 8.2.2 but I'm assuming the fix would've been carried forward from 8.1.6?
Thanks. But why wouldn't the fix be in 8.2.2 if it's in 8.1.6? The need to perform an entire upgrade to resolve small issues like this is really not sustainable and we only hope hotfixes will make a return one day.