Java의 Apache 큐레이터 라이브러리에서 트랜잭션을 사용하여 ZooKeeper에 데이터를 쓰려고합니다. 큐레이터 트랜잭션 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