JavaのApache Curatorライブラリでトランザクションを使用してZooKeeperにデータを書き込もうとしています。ここで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.
私はこれを「//問題」の行を交換する場合、それが動作します:
任意のアイデア?
トランザクションを使用していない場合、キュレーターの標準create()DSLにはcreatingParentsIfNeeded()オプションがあります。 – Randgalt