Я пытаюсь записать данные в ZooKeeper, используя транзакцию в библиотеке Apache Curator в Java.CuratorTransaction KeeperErrorCode = NoNode
Вот мой код:
private CuratorFramework client;
...
private void writeToZK() {
String nodePath = "/path/to/node";
client.inTransaction().create().forPath(nodePath).and().commit(); // problem
}
(я использую куратор v2.9.0)
Это бросает:
org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode
at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)
at org.apache.zookeeper.ZooKeeper.multiInternal(ZooKeeper.java:949)
at org.apache.zookeeper.ZooKeeper.multi(ZooKeeper.java:915)
Я порылся в ZooKeeper.multiInternal(), он получил реакция на зоб, содержащую
OpResult: err = -101, type = -1.
Если я заменить строку «//» проблема с этим, он работает:
Любая идея?
Если вы не используете транзакции, в DSL стандартного create() DS кулера есть опция createParentsIfNeeded(). – Randgalt