【问题标题】:Couchbase SDK 3.0 enable/disable flush option from javaCouchbase SDK 3.0 从 java 启用/禁用刷新选项
【发布时间】:2020-06-24 11:33:48
【问题描述】:

我正在尝试使用以下代码启用/禁用存储桶刷新选项,但它不起作用。 (SDK 3.0)

public static void main(String... args) {
    Cluster cluster = Cluster.connect("host", "user", "password");
    cluster.bucket("bucketName").async();
    cluster.buckets().getBucket("bucketName").flushEnabled(true);
    cluster.buckets().flushBucket("bucketName");
}

还有其他方法吗? (如果我启用桶选项来刷新,我可以使用上面的代码来刷新桶。)

【问题讨论】:

    标签: java couchbase couchbase-java-api


    【解决方案1】:

    您错过了对 updateBucket 的调用,它保存了修改后的设置:

    public void setFlushable(Cluster cluster, String bucket, boolean flushable) {
      BucketSettings settings = cluster.buckets().getBucket(bucket);
      settings.flushEnabled(flushable);
      cluster.buckets().updateBucket(settings);
    }
    

    【讨论】:

    • 我尝试按照您的建议添加 BucketSetting,但我面临以下异常:线程“main”java.lang.IllegalArgumentException 中的异常:无法从字符串“noEviction”反序列化 com.couchbase.client.java.manager.bucket.EjectionPolicy 类型的值:不是一个枚举类接受的值:[valueOnly, fullEviction] at [Source: UNKNOWN;行:-1,列:-1](通过引用链:com.couchbase.client.java.manager.bucket.BucketSettings["evictionPolicy"])
    • 听起来像是 SDK 中的一个错误。什么版本的 Couchbase Server,什么版本的 Couchbase Java SDK?
    • 另外,你能确认这是一个“临时”存储桶吗?
    • 我在 Couchbase Jira 上提交了 JCBC-1647 以跟踪此问题。
    • 我正在使用 Couchbase Server 5.5.6 和 Couchbase Java SDK 3.0
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 1970-01-01
    • 2015-11-24
    • 2012-07-22
    相关资源
    最近更新 更多