尝试在arangodb中同时执行两个查询时出现连接重置错误?

问题描述

我正在使用arangojs v6.14.1arangodb version 3.6.4.。我也有nodejs Express应用,该应用旨在满足客户要求。

在执行并发请求时遇到问题。当我同时处理客户端请求时,数据库连接挂断:

应用收到请求后会做什么?

打开数据库连接-

db = new Database(dbConfig.url); 
db.useDatabase(dbConfig.name); 
db.useBasicAuth(dbConfig.username,dbConfig.password);

执行多种功能和可访问性检查需要访问多个中间件功能。对于我尝试的每个中间件

  • 打开新的数据库连接->
  • 执行操作->
  • 关闭连接->
  • 将结果返回到下一个中​​间件。

这一次可以处理单个请求。但是,如果我尝试同时调用两个API,则会收到CONNECTIONRESET错误。并且还会引发套接字挂起错误

我试图推荐这种紧密连接的方法,它在一段时间内开始正常工作。但是当我增加连接数时,它再次显示与“ CONNECTIONRESET”相同的错误

搜索arangojs的有关连接操作的文档。但是我还没有找到关于它的任何信息。

任何帮助将不胜感激。

解决方法

这对您来说可能为时已晚,但我遇到了类似的问题。与 ArangoDB 支持人员交谈后,结果证明是套接字的问题。

查看 netstat -aplnt 的输出,我看到很多 CLOSE_WAITTIME_WAIT 消息,表明有很多连接没有正确关闭。

解决方案是启用持久连接(请参阅 arangojs config 以了解 keep-alive 和 maxSockets),然后尽可能重用单个连接。这不仅仅是设置更改,还需要一些代码修改。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...