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 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

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `LockService.LockImpl`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JChannel` | `ch`
    `protected Locking` | `lock_prot`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `LockService()`
    `LockService(JChannel ch)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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()`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### ch

          protected JChannel ch

    - #### lock_prot

          protected Locking lock_prot

  - ### 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()

    - #### addLockListener

          public void addLockListener(LockNotification listener)

    - #### removeLockListener

          public void removeLockListener(LockNotification listener)

    - #### printLocks

          public java.lang.String printLocks()

Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.