Couchbase Client(Java)IlegalStateException - 检查对象有效性

时间:2014-06-06 23:48:11

标签: java scalability couchbase

我使用Apache Commons Pool来存储一组Couchbase客户端。在进行负载测试(但仍然负载很小)时,经过几千次操作(使用100个连接池)后,一些Couchbase客户端对象开始抛出IlegalStateException,然后关闭。

我想知道是否有办法检查CouchbaseClient对象是否仍然有效。当"设置"时会生成异常。从对象调用操作,因此检查客户端是否有效将是一个可接受的解决方案。

我还不确定异常的起源是什么。但是,当我在返回池之前对客户端进行某种验证时,问题就会停止发生。问题是这个验证(调用一个集合操作来测试客户端是否正常工作)太暴力并影响性能。我想找到一种更顺畅的检查方法。

1 个答案:

答案 0 :(得分:0)

IllegalStateException的最常见原因是无法将操作添加到输入队列。请参阅Couchbase Java开发人员指南中的Bullet-Proof Futures and Listeners部分,了解如何处理它。

但请注意,100个CouchbaseClient个对象很多!对于每个应用程序,通常不需要多于一个或两个CouchbaseClient对象 - 建议的用例是异步的,并且有一个内部线程池用于处理实际的低级操作。

我建议您查看Couchbase Java Developer Guide,特别是Understanding and Using Asynchronous Operations上的部分。