Class LockService


  • public class LockService
    extends java.lang.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();
       }
     

    The exact semantics of this lock implemantation are defined in LockService.LockImpl.

    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
    • 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)
      • removeLockListener

        public void removeLockListener​(LockNotification listener)
      • printLocks

        public java.lang.String printLocks()