Package org.jgroups.blocks.locking
Class LockService
- java.lang.Object
-
- org.jgroups.blocks.locking.LockService
-
public class LockService extends java.lang.Object
LockService is the main class for to use for distributed locking functionality. LockService needs access to aJChannel
and interacts with a locking protocol (e.g.CENTRAL_LOCK
) via events. When no locking protocol is seen on the channel's stack, LockService will throw an exception at startup. An example of using LockService is:JChannel ch=new JChannel("/home/bela/locking.xml); // locking.xml needs to have a locking protocol towards the top LockService lock_service=new LockService(ch); ch.connect("lock-cluster"); Lock lock=lock_service.getLock("mylock"); lock.lock(); try { // do something with the lock acquired } finally { lock.unlock(); }
The exact semantics of this lock implemantation are defined inLockService.LockImpl
. Note that, contrary to the semantics ofLock
, unlock() can be called multiple times; after a lock has been released, future calls to unlock() have no effect.- Since:
- 2.12
- Author:
- Bela Ban
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
LockService.LockImpl
Implementation ofLock
.
-
Constructor Summary
Constructors Constructor Description LockService()
LockService(JChannel ch)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addLockListener(LockNotification listener)
java.util.concurrent.locks.Lock
getLock(java.lang.String lock_name)
java.lang.String
printLocks()
void
removeLockListener(LockNotification listener)
void
setChannel(JChannel ch)
void
unlockAll()
void
unlockForce(java.lang.String lock_name)
-
-
-
Constructor Detail
-
LockService
public LockService()
-
LockService
public LockService(JChannel ch)
-
-
Method Detail
-
setChannel
public void setChannel(JChannel ch)
-
getLock
public java.util.concurrent.locks.Lock getLock(java.lang.String lock_name)
-
unlockAll
public void unlockAll()
-
unlockForce
public void unlockForce(java.lang.String lock_name)
-
addLockListener
public void addLockListener(LockNotification listener)
-
removeLockListener
public void removeLockListener(LockNotification listener)
-
printLocks
public java.lang.String printLocks()
-
-