LockGoneException observed in logs during SLA processing
On configuring an assignment level SLA, LockGoneException occurs while processing a queue item on reaching the Goal or Deadline. However, there is no effect on functionality.
(ExecuteSLA.Assign_.Action) ERROR - obj-save failed.
com.pega.pegarules.pub.database.LockGoneException: Save, Delete or Commit has failed because lock "A-B-C F-643589" is not held
Steps to Reproduce
- Configure an assignment level SLA
- Wait till the Goal and Deadline is reached such that the corresponding escalation activities are executed.
Issue is with the custom escalation activities that are created in the Goals and Deadlines. FinishAssignment is invoked in the escalation activities because of the commit that is performed on the work page. When the executeSLA fetches the lock handle during Obj-Save, it is lost because of the previous commit.
In the background, when the SLA agent retrieves the queue item, the executeSLA activity is executed. Initially all the steps are executed, after which the SLA agent checks for escalation activities (if any) configured in the SLA rule. If activities are present, they are executed and the agent returns to the executeSLA step executions.
It is not recommended to perform commits in the escalation activities of the agent as the final commits are performed when the agent transaction is completed.
Therefore, if commits are present in the agent activity, exception occurs while performing the deferred 'Obj-Save' on the work page in executeSLA because the handle is lost.
Perform the following local-change:
Use ResumeFlow to check if the commit is not from the SLA rule.
0% found this useful