如何管理marklogic连接

时间:2017-03-10 20:04:48

标签: connection-pooling marklogic marklogic-8

我们的服务侦听队列,并使用java客户端将事件保存在发布给它的Marklogic-v8.0.6中。
持久性代码以这种方式工作:
client.getConnection(host,port,name,pswd,auth) write content client.release
当有大量事件说2000+时,只有前200 - 250持续存在 然后我们看到带有消息Too many open files的异常,并且之后事件不会持久存在。
这是因为marklogic上有太多打开的连接,并且没有服务连接消耗。
marklogic中是否有可以使用的连接池概念?

1 个答案:

答案 0 :(得分:3)

客户端对象封装了连接池。

为每个请求创建一个新客户端是非常低效的。

建议的使用模式是为数据库和角色的组合打开一个客户端,并继续使用该客户端来访问具有该角色的数据库。

数据库客户端和管理器在配置后是线程安全的,因此多个线程可以使用相同的数据库客户端。

如果您发现需要的并发请求多于默认请求,则有一些方法可以调整它,但第一步是将数据库客户端视为数据库和角色组合的单例。

希望有帮助,