iProcess Objects Server can return "sal_frm_term (KEEPLOCKED) failed" when re-locking a workitem.

iProcess Objects Server can return "sal_frm_term (KEEPLOCKED) failed" when re-locking a workitem.

book

Article ID: KB0094387

calendar_today

Updated On:

Products Versions
TIBCO iProcess Engine (Oracle) -
Not Applicable -

Description

Resolution:
Description:
==========
TIBCO iProcess Objects Server (iPO) can return "sal_frm_term (KEEPLOCKED) failed" when re-locking a workitem and the following error is written to the swentobjsv01.log:

23380|0633C|01/19/2011 10:44:27.643|00100000|ERROR|sal_frm_term_ex (KEEPLOCKED) failed (-33)
23380|0633C|01/19/2011 10:44:27.643|00100000|ERROR|process_transaction() failed, rc=-182, Message Code(LI)

Environment:
==========
All TIBCO iProcess Objects Server™ versions and environments

Cause:
======
The error is generated when a workitem is re-locked and the workitem's marking data has been updated since the first lock was applied. This can be due to a TriggerEvent firing on the case with the update outstanding flag set to true.

Resolution:
=========
There are three possible resolutions.  First, if the application is a custom TIBCO iProcess Server Objects (Java/.Net) application then the error can be trapped and the workitem locked again to get the new marking values. A second option would be to change the TriggerEvent methods so that the updateOutstanding flag is false and a third option is to disable the check that the WISRPC process performs when the workitem is being locked with the following process attribute setting:

$SWDIR/util/swadm set_attribute 0 WIS 0 IGNORE_PACK_CHANGED 1

The IGNORE_PACK_CHANGED setting of 1 will mean that the WISRPC does not throw an error to the iPO Server when the workitem is locked.

Issue/Introduction

iProcess Objects Server can return "sal_frm_term (KEEPLOCKED) failed" when re-locking a workitem.