Does anybody know which of the Curator lock recipes creates ephemeral nodes ?
I tested InterProcessMutex
lock but as far as I can see (with the zkClient
) it does not delete the nodes after release or close the session.
This is the code I'm using for lock keys.
public void lock(final LockKey lockkey, final LockAcquiredListener listener) throws Exception {
final String lockKeyPath = lockkey.toString();
LOGGER.info("Trying to acquire the lock {}", lockKeyPath);
final InterProcessMutex lock = new InterProcessMutex(client, LOCKS_PREFIX + lockKeyPath);
if (!lock.acquire(LOCK_MS_TIME_OUT, TimeUnit.MILLISECONDS)) {
LOGGER.info("Could not acquire the lock {}", lockkey.toString());
throw new LockAcquisitionTimeOutException("Could not acquire the lock: " + lockKeyPath);
}
try {
if (listener != null) {
LOGGER.info("Lock acquired for key {}", lockKeyPath);
listener.lockAcquired(lockkey);
}
} finally {
LOGGER.info("Release acquired key {}", lockKeyPath);
lock.release();
}
}
Thanks!