首页 > 解决方案 > Couchbase:文档更新期间出现 NOT_STORED 错误

问题描述

我们正在运行 Couchbase Server CE 5.0.1 集群并使用2.7.2 版中的 java-client与其通信以存储 JSON 文档。

我们使用子文档 API执行文档更新,例如:

final AsyncMutateInBuilder asyncMutateInBuilder = asyncBucket.mutateIn(createDocumentId(profileId)).upsertDocument(true);
final SubdocOptionsBuilder optionsBuilder = SubdocOptionsBuilder.builder().createPath(true);
asyncMutateInBuilder.upsert(path, value, optionsBuilder)

asyncMutateInBuilder.execute()

在这些更新期间,我们经常收到带有神秘消息的CouchbaseExceptionNOT_STORED:。示例堆栈跟踪:

"error":"com.couchbase.client.core.CouchbaseException",
"stacktrace":"com.couchbase.client.core.CouchbaseException: NOT_STORED at 
 com.couchbase.client.java.subdoc.SubdocHelper.commonSubdocErrors(SubdocHelper.java:101) at
 com.couchbase.client.java.subdoc.AsyncMutateInBuilder$2$1.call(AsyncMutateInBuilder.java:1330) at 
 com.couchbase.client.java.subdoc.AsyncMutateInBuilder$2$1.call(AsyncMutateInBuilder.java:1276) at
 rx.internal.operators.OnSubscribeMap$MapSubscriber.onNext(OnSubscribeMap.java:69) at
 rx.observers.Subscribers$5.onNext(Subscribers.java:235) at
 rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onNext(OnSubscribeDoOnEach.java:101) at
 rx.internal.producers.SingleProducer.request(SingleProducer.java:65) at
 rx.Subscriber.setProducer(Subscriber.java:211) at
 rx.internal.operators.OnSubscribeMap$MapSubscriber.setProducer(OnSubscribeMap.java:102) at
 rx.Subscriber.setProducer(Subscriber.java:205) at
 rx.Subscriber.setProducer(Subscriber.java:205) at
 rx.subjects.AsyncSubject.onCompleted(AsyncSubject.java:103) at
 com.couchbase.client.core.endpoint.AbstractGenericHandler.completeResponse(AbstractGenericHandler.java:508) at
 com.couchbase.client.core.endpoint.AbstractGenericHandler.access$000(AbstractGenericHandler.java:86) at
 com.couchbase.client.core.endpoint.AbstractGenericHandler$2.call(AbstractGenericHandler.java:540) at
 com.netflix.hystrix.strategy.concurrency.HystrixContexSchedulerAction$1.call(HystrixContexSchedulerAction.java:56)
...

是否有人面临类似问题或知道根本原因是什么?我在文档和服务器日志中查找有关此类异常根本原因的任何信息,但失败了 - 在服务器日志中我没有看到任何相应的日志,并且文档在这种情况下没有提供任何解释/故障排除。

感谢您的任何建议或解释!

标签: javacouchbase

解决方案


服务器返回“NOT_STORED”。由于您说“经常”而不是始终如一,并且您提到现在已经很古老的 5.0.1,我怀疑它与旧版本中的某种缺陷有关。


推荐阅读