Locking
The locking-related methods provided by the JoobContext class are shown in the following table.
Method | Description |
---|---|
Lock | Locks a JADE object and throws an exception if the attempt fails |
Unlock | Releases a lock on a JADE object |
TryLock | Locks a JADE object and returns False if the attempt fails |
GetLockStatus | Gets the type and duration of the lock on a JADE object by the current process |
In the following example, an attempt is made to lock an agent object using the Lock method. If the object is already locked with an incompatible lock, a normal lock exception is thrown. The JADE concepts of passback, continue, resume, or abort (for the action that is taken after the exception handling code has been executed) are not supported.
JoobContext context = JoobContext.CurrentContext; Agent agent = context.FirstInstance<Agent>(); try { context.Lock(agent, // object to be locked LockType.Exclusive, // type of lock LockDuration.Session, // session/transaction duration TimeSpan.FromSeconds(5)); // time before exception thrown
}
catch (JoobObjectLockedException) { // lock object handling code }