Class LockService

java.lang.Object
org.jgroups.blocks.locking.LockService

public class LockService extends Object
LockService is the main class for to use for distributed locking functionality. LockService needs access to a JChannel 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();
   }
 
Note that, contrary to the semantics of Lock, 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
  • Field Details

  • Constructor Details

    • LockService

      public LockService()
    • LockService

      public LockService(JChannel ch)
  • Method Details

    • setChannel

      public void setChannel(JChannel ch)
    • getLock

      public Lock getLock(String lock_name)
    • unlockAll

      public void unlockAll()
    • addLockListener

      public void addLockListener(LockNotification listener)
    • removeLockListener

      public void removeLockListener(LockNotification listener)
    • printLocks

      public String printLocks()