connection.on('error', function (err) {
console.log(err);
if (err.code === 'ESOCKET') {
console.log('----- Connection lost removing connection from pool -----');
// self.pool.destroy(connection);
connection.close();
connection = new Connection(config);
}
});
我必须使用上面的代码,但我收到连接超时错误消息..
{ [ConnectionError: Connection lost - read ECONNRESET]
message: 'Connection lost - read ECONNRESET',
code: 'ESOCKET' }
请帮助解决这个问题......
答案 0 :(得分:0)
您似乎有一个很长的空闲连接,它将被关闭。 Github https://github.com/tediousjs/tedious/issues/300已经讨论了这个问题很长一段时间了,目前似乎还没有结果。
作为解决方法,您可以尝试使用https://github.com/tediousjs/tedious-connection-pool#new-connectionpoolpoolconfig-connectionconfig与池建立连接。
答案 1 :(得分:0)
我想在此问题上添加我的经验:
我在新的数据库批量加载上随机获取此问题并且无法复制它。我发现通过将bulkload的大小从18k记录减少到大约12k,插入工作没有问题。虽然无法超过12k。
长话短说,我发现显然我的一条记录超出了我放在db上的varchar限制的容量,并且它抛出了一个错误。但是,在我逐个插入记录之前,该错误从未暴露给我。
答案 2 :(得分:0)
您必须从connection.on()方法中关闭该连接。就我而言,我在应用程序路由的末尾在查询调用后关闭了连接。这是我的代码:
app.post('/', function(req, res){
let query;
query = "SELECT * FROM Customers";
queryDatabase(query,res);
connection.close();
});