簡體   English   中英

Couchbase Java客戶端IllegalReferenceCountException

[英]Couchbase java-client IllegalReferenceCountException

嘗試使用AsyncBucket我在java-client-2.1.0上收到此錯誤:

com.couchbase.client.deps.io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1

過了一會兒,我明白了。 Couchbase完全忽略了這種情況,因此庫沒有適當的反饋,而Netty內部人員也無濟於事。

原來,當您多次消費CB的物品時,您會得到該錯誤。 例如,

val getObs = asyncBucket.get("blah")
val emptyObs = getObs.isEmpty.doOnEach(...).subscribe()
val docObs = getObs.doOnEach(...).subscribe()

這是我想出的解決“找不到文檔”方案的唯一方法。

要解決此問題,請使用cache()

val getObs = asyncBucket.get("blah").cache()

緩存觀察者將使用Couchbase的項目,然后多個訂閱者可以安全地從緩存中使用。

如果使用rxscala ,則修復方法相同。

getObs.singleOption.foreach { ... }

沒有緩存將失敗。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM