## 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
`protected class` `LockService.LockImpl`

Field Summary
`protected JChannel` `ch`
`protected Locking` `lock_prot`

Constructor Summary
`LockService()`
`LockService(JChannel ch)`

Method Summary
`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.