如何管理 marklogic 连接
How to manage marklogic connections
我们的服务监听一个队列,并使用 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中有连接池的概念可以利用吗?
客户端对象封装了一个连接池。
为每个请求创建一个新的客户端是非常低效的。
推荐的使用模式是为数据库和角色的组合打开一个客户端,并继续使用该客户端进行角色对数据库的所有访问。
数据库客户端和管理器在配置后是线程安全的,因此多个线程可以使用同一个数据库客户端。
如果您发现需要比默认更多的并发请求,可以通过多种方式进行调整,但第一步是将数据库客户端视为数据库和角色组合的单例。
希望对您有所帮助,
我们的服务监听一个队列,并使用 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中有连接池的概念可以利用吗?
客户端对象封装了一个连接池。
为每个请求创建一个新的客户端是非常低效的。
推荐的使用模式是为数据库和角色的组合打开一个客户端,并继续使用该客户端进行角色对数据库的所有访问。
数据库客户端和管理器在配置后是线程安全的,因此多个线程可以使用同一个数据库客户端。
如果您发现需要比默认更多的并发请求,可以通过多种方式进行调整,但第一步是将数据库客户端视为数据库和角色组合的单例。
希望对您有所帮助,