Protractor ConnectionError:连接丢失-在量角器中读取EconReset

Protractor ConnectionError:连接丢失-在量角器中读取EconReset,protractor,azure-sql-database,cucumberjs,selenium-grid2,Protractor,Azure Sql Database,Cucumberjs,Selenium Grid2,我正在使用量角器52.2和cucumber 3.2.2。我正在使用带量角器的selenium网格(selenium-server-standalone-3.14.0.jar),并在4个不同节点的4个浏览器中运行脚本。我在数据库中有一个600行的表。最初,我从这个表中访问数据,通过我的量角器脚本输入每一行的数据,并在成功输入每一行后更新DB列。但在成功输入一些行之后,量角器脚本突然以错误“ConnectionError:Connection lost-read ECONNRESET in grad

我正在使用量角器52.2和cucumber 3.2.2。我正在使用带量角器的selenium网格(selenium-server-standalone-3.14.0.jar),并在4个不同节点的4个浏览器中运行脚本。我在数据库中有一个600行的表。最初,我从这个表中访问数据,通过我的量角器脚本输入每一行的数据,并在成功输入每一行后更新DB列。但在成功输入一些行之后,量角器脚本突然以错误“
ConnectionError:Connection lost-read ECONNRESET in gradutor
”结束“请求错误:资源ID:1。数据库的请求限制为60,并且已达到。请参阅“”以获取帮助。“下面给出了我正在使用的更新查询(我正在使用azure sql)。我不清楚如何解决此问题。请提前感谢

var Connection = require('tedious').Connection;
var Request = require('tedious').Request;
var config = 
{
 userName: 'xxx', 
 password: 'xxxxx', 
 server: 'xxxxxx', 
 options: 
    {
       database: 'xxx' ,
       encrypt: true,
       rowCollectionOnRequestCompletion: true
    }
}
var connection = new Connection(config);

defineSupportCode(function ({ setDefaultTimeout, Given, When, Then }) {
 setDefaultTimeout(30000 * 1000);
   function updatedb(LPAID){
      request = new Request("UPDATE COM_Location_Post with (rowlock) SET IsPublished = 1 WHERE Id ="+LPAID,function(err,rowCount, rows) { 
        if(err){
          console.log(err)
         }
      });
     connection.execSql(request);
  }
});

您没有在脚本中使用连接关闭

你的问题很清楚,你面临这个问题

每次交易都尝试关闭连接

    (async () => {
            const config = {
                user: 'User',
                password: 'iPg$',
                server: 'cp-sql',
                database: 'DBI',
                options: {
                    encrypt: true // Use this if you're on Windows Azure
                }
            }
            try {

                let pool = await sql.connect(config)
                var envcode, testcode;
                let result1 = await pool.request()
                    .query(`query 1 goes here`)
                // console.dir(result1)
                pool.close();
                sql.close();
                let pool1 = await sql.connect(config)
                let result2 = await pool1.request()
                    .query(`query 2 goes here`)
                // console.dir(result2)
                pool1.close();
                sql.close();
                resolve(result2);
            } catch (err) {
                console.log(err)
            }
        })()

谢谢你的回复。你能告诉我如何在这个查询中使用connection close吗?编辑了答案@devleena。你应该在执行查询后获得连接的类型支持,看看连接是否显示方法close()。在显示我的记录集后,我使用conn.close终止连接实例。我在sql查询中使用connection close作为连接。on('connect',function(err){if(err){reject(err);connection.close();}else{request1=新请求(“EXEC[usp_GetPostDetails_Automation]”+clientID+,“+线程,function(err,rowCount,rows){if(err){reject(err);connection.close();}else{resolve('done');connection.close();}}};connection.execSql(request1);});此查询已成功执行,但当我尝试连接与此相同的下一个查询时,它不会执行下一个查询。在执行第一个查询后,进程将退出..那么我们是否有其他语法来重新连接?通过使用“connection.on”,它在第二次不起作用。你知道吗?