Class LockService


  • @Deprecated
    public class LockService
    extends java.lang.Object
    Deprecated.
    See http://belaban.blogspot.com/2020/11/i-hate-distributed-locks.html.
    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
    • Field Detail

      • lock_prot

        protected Locking lock_prot
        Deprecated.
    • Constructor Detail

      • LockService

        public LockService()
        Deprecated.
      • LockService

        public LockService​(JChannel ch)
        Deprecated.
    • Method Detail

      • setChannel

        public void setChannel​(JChannel ch)
        Deprecated.
      • getLock

        public java.util.concurrent.locks.Lock getLock​(java.lang.String lock_name)
        Deprecated.
      • unlockAll

        public void unlockAll()
        Deprecated.
      • unlockForce

        public void unlockForce​(java.lang.String lock_name)
        Deprecated.
      • addLockListener

        public void addLockListener​(LockNotification listener)
        Deprecated.
      • removeLockListener

        public void removeLockListener​(LockNotification listener)
        Deprecated.
      • printLocks

        public java.lang.String printLocks()
        Deprecated.