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 TypeMethodDescriptionvoidObtain lock onobjfor specifiedowner.voidRelease lock onobjowned by specifiedowner.voidRelease lock onobjowned by specifiedowner.
-
Method Details
-
lock
void lock(Object obj, Object owner, int timeout) throws LockNotGrantedException, ClassCastException, ChannelException Obtain lock onobjfor 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- ifobjand/orowneris not of type that implementation expects to get (for example, when distributed lock manager obtains non-serializableobjorowner).ChannelException- if something bad happened to communication channel.
-
unlock
void unlock(Object obj, Object owner) throws LockNotReleasedException, ClassCastException, ChannelException Release lock onobjowned 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 onobjowned 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
-