如何在客户端重启后重新获取InterProcessMutex

时间:2017-09-20 11:56:39

标签: java apache-zookeeper distributed-computing apache-curator

我使用this curator recipe来同步访问共享状态b / w多个客户端。问题是如果进程在持有锁的情况下死亡,则客户端将失败:

IllegalMonitorStateException You do not own the lock: /classifier-job-lock  
org.apache.curator.framework.recipes.locks.InterProcessMutex.release (InterProcessMutex.java:140)

这种情况下最佳的行动计划是什么?

1 个答案:

答案 0 :(得分:0)

您正在使用InterProcessMutex。这与JDK锁相似,因为获取锁的同一线程必须是释放锁的线程。注意:应该改进这个类的文档。

相反,请尝试使用没有此限制的InterProcessSemaphoreMutex