Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

Support Article

Commit Error due to lock gone lost exception

SA-9402

Summary



Commit Error due to lock gone lost exception when certain things occur involving a parent work object whose child object is locked. The lock on the child object is released without closing the child object's tab.

Error Messages



NC-14112801580 Client Comparison triggered SalesCaseID is :SO-14112802019
Caused by: javax.ejb.EJBException: nested exception is: com.pega.pegarules.pub.database.LockGoneException: Save, Delete or Commit has failed because lock "your_[descriptive-name]-RETBNK-CMPS-WORK-SALES SO-14112802019" is not held



Steps to Reproduce



1. Create Cover (Parent) and Covered work objects (Child).
2. Open the Parent work object in one tab (TAB1; and its corresponding thread is TABTHREAD1).
3. Open the child work object from it, using processAssignment activity in TAB1, so pyWorkPage points to Child work object.
4. Open the same parent work object in TAB2 and its corresponding thread is TABTHREAD2.
5. Open the child work object using processAssisgnment activity in TAB2.
6. PPRC closes the TAB1 and in TAB2, the child work object replaces the parent work object.
7. Open the same parent work object third time in another TAB, PRPC is using existing TABTHREAD1 and it changes the pyWorkPage.
8. Perform operation on Child work object in TAB2, then Lock Lost exception error message appears.


Root Cause



User has modified pyAssignmentsLabel control and overridden it such that the Child Work Items always open in existing Parent Work Item Harness instead of opening in new tab.
So Child Work Item in second Case directly calls ProcessAssignment Activity but it does not release the lock which is acquired by Tab1.
To release the Lock of Work Item from Tab1 and obtain it on Tab2, an extra request to server must be sent which is "doClose" operation.
When the request is sent, it removes the thread and also it releases lock on Tab1.


Resolution



Local-change is to explicitly call the DoClose activity before calling the ProcessAssignment activity.

Published November 18, 2015 - Updated October 8, 2020

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice