Try OpenEdge Now
skip to main content
ABL Reference
Class, Interface, and Enumeration Reference : Progress.Lang.LockConflict class
 

Progress.Lang.LockConflict class

(Technical Preview only in OpenEdge Release 11.7)
When enabled, the AVM throws an instance of this Progress.Lang.LockConflict class and raises the STOP condition when a time-out occurs while waiting for a record lock or when the user presses Cancel in the dialog box displayed during the record lock waiting period.
You can therefore catch instances of Progress.Lang.LockConflict in a CATCH block to trap each STOP condition raised by a time-out while waiting for a record lock. Its public properties provide information on the context in which the record lock is held.
You cannot inherit from this class.

Serializable:

Yes

Constructors

The class constructors are reserved for system use only.

Super Class

Progress.Lang.Stop class

Interfaces

This class does not implement interfaces (beyond those it inherits from its base class).

Public Properties

Public Methods

This class does not contain methods (beyond those it inherits from its base class).

Public Events

This class does not contain events.

Notes

*In order to enable the AVM to throw Progress.Lang.LockConflict objects, you must specify the Catch STOP (-catchStop) startup parameter with the value 1 (-catchStop 1). Otherwise, the AVM raises the STOP condition only, without throwing the associated object.
*You can specify the time-out period that an ABL application waits for the release of a record lock using the Lock Timeout (-lkwtmo) startup parameter.
*In character mode only (running Linux, Unix, or character mode on Windows), the user can also press CTRLC to cancel a wait on a record lock. Note that unlike any other AVM context, pressing this key in the context of waiting for a record lock in character mode both raises the STOP condition and throws a Progress.Lang.LockConflict object. In any other AVM context, pressing this key throws a Progress.Lang.UserInterrupt object instead of a LockConflict object. For more information, see the Progress.Lang.UserInterrupt class description.
*By catching a LockConflict object with a CATCH block, you know what caused the AVM to raise the STOP condition and throw the object in the first place.
Note: You can instead trap the STOP condition using the ON STOP phrase on an associated block, but this does not tell you anything about what caused the AVM to raise the STOP condition itself.
*Like any other class-based object that is no longer referenced, the AVM automatically deletes LockConflict objects using garbage collection.

See also

CATCH statement, ON STOP phrase, Progress.Lang.Stop class