背景
我正在创建一个与数据库连接的非常简单的应用程序 . 我连接成功,我能够进行查询,但每个X我都会收到错误 .
代码
我的小应用程序包含以下代码:
var mssql = require("mssql")
mssql.connect({
"user": "someUSer",
"password": "userPass",
"database": "someDb",
"server": "someServer",
"options": { "encrypt": true },
"pool": {
"max": 100000,
"min": 1,
"idleTimeoutMillis": 50,
"evictionRunIntervalMillis": 5,
"softIdleTimeoutMillis": 5
}
})
.then( () => {
return mssql.query`SELECT TOP 2 Number FROM Devices`;
})
.then( console.log )
.catch( console.error );
这段代码有效 . 它成功打印了给定表的前2个设备号 .
但是有一个问题 .
问题
每隔X秒我就会打印出以下错误:
错误:无法在Object.onceWrapper上的Connection.tedious.once.err(/home/service/apps/teltonika-parser/node_modules/mssql/lib/tedious.js:216:17)连接到15000ms的DB_ADDRESS(事件) .js:293:19)在ConnectionOne(events.js:191:7)的emitOne(events.js:96:13)Connection.connectTimeout(/ home / service / apps / teltonika-parser / node_modules / tedious) /lib/connection.js:795:12)attimeout(timers.js:386:14)在tryOnTimeout(timers.js:250:5)的Timer.listOnTimeout(timers.js:214:5)
奇怪的是,我的所有连接似乎都有效,即我可以进行查询,DB会正常回答它们 .
研究
起初我认为这是密码,用户或这些行之间的问题 . 虽然这对我没有意义(因为我可以查询数据库),但我仔细检查了一切都很好 .
然后我认为这是我的应用程序中的Promises的问题 . 在 Build 这个MWE之后,我总结说_1374451就是这样 .
问题
什么可能导致这种反复出现的错误?
1 回答
显然,Azure的数据库服务存在问题 . 除此之外,我们的数据库基本上是100% .
这解释了长时间延迟和连接失败,尽管获得更多关于失败原因的信息会更好 .