首页 文章

mssql throw连接Node.js后无法连接到DB

提问于
浏览
0

背景

我正在创建一个与数据库连接的非常简单的应用程序 . 我连接成功,我能够进行查询,但每个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 回答

  • 0

    显然,Azure的数据库服务存在问题 . 除此之外,我们的数据库基本上是100% .

    这解释了长时间延迟和连接失败,尽管获得更多关于失败原因的信息会更好 .

相关问题