Package org.jgroups.blocks
Interface LockManager
- All Known Implementing Classes:
DistributedLockManager
public interface LockManager
LockManager
represents generic lock manager that allows
obtaining and releasing locks on objects.- Version:
- $Id: LockManager.java,v 1.2 2005/06/08 15:56:54 publicnmi Exp $
- Author:
- Roman Rokytskyy (rrokytskyy@acm.org), Robert Schaffar-Taurok (robert@fusion.at)
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Obtain lock onobj
for specifiedowner
.void
Release lock onobj
owned by specifiedowner
.void
Release lock onobj
owned by specifiedowner
.
-
Method Details
-
lock
void lock(Object obj, Object owner, int timeout) throws LockNotGrantedException, ClassCastException, ChannelException Obtain lock onobj
for specifiedowner
. Implementation should try to obtain lock few times within the specified timeout.- Parameters:
obj
- obj to lock, usually not full object but object's ID.owner
- object identifying entity that will own the lock.timeout
- maximum time that we grant to obtain a lock.- Throws:
LockNotGrantedException
- if lock is not granted within specified period.ClassCastException
- ifobj
and/orowner
is not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializableobj
orowner
).ChannelException
- if something bad happened to communication channel.
-
unlock
void unlock(Object obj, Object owner) throws LockNotReleasedException, ClassCastException, ChannelException Release lock onobj
owned by specifiedowner
. since 2.2.9 this method is only a wrapper for unlock(Object lockId, Object owner, boolean releaseMultiLocked). Use that with releaseMultiLocked set to true if you want to be able to release multiple locked locks (for example after a merge)- Parameters:
obj
- obj to lock, usually not full object but object's ID.owner
- object identifying entity that will own the lock.
-
unlock
void unlock(Object obj, Object owner, boolean releaseMultiLocked) throws LockNotReleasedException, ClassCastException, ChannelException, LockMultiLockedException Release lock onobj
owned by specifiedowner
.- Parameters:
obj
- obj to lock, usually not full object but object's ID.owner
- object identifying entity that will own the lock.releaseMultiLocked
- force unlocking of the lock if the local lockManager owns the lock even if another lockManager owns the same lock
-