繁体   English   中英

系列请求错误:SqlContext 错误。 步骤“GetData”失败:“超时:请求未能在 15000 毫秒内完成

[英]seriate RequestError: SqlContext Error. Failed on step “GetData” with: "Timeout: Request failed to complete in 15000ms

我正在尝试使用 seriate 从节点服务器在我的 SQL 数据库上运行存储过程。 但是我得到了以下错误,我不知道为什么。 我真的很感谢你的帮助。

错误:{ [请求错误:SqlContext 错误。 步骤“GetData”失败:“超时:请求无法完成我 15000 毫秒”] 名称:“RequestError”,消息:“SqlContext 错误。 步骤“GetData”失败:“超时请求未能在 15000 毫秒内完成”',代码:'ETIMEOUT',编号:'ETIMEOUT',行号:未定义,状态:未定义,类:未定义,服务器名称:未定义,procName:未定义, 前面的错误: [], 步骤: 'GetData' }

这是我的代码:

var sql = require( "seriate" );

var connection = {
    name: "example-1",
    user: "user",
    password: "pass",
    host: "host_ip",
    database: "Test"
};    

exports.getDataSql = function(req, res) {
    var results = {};

    sql.execute( connection, {
       procedure: "GetData",
        params: {
            Name: {
                type: sql.NVARCHAR(50),
                val: "user2"
            },
            LName: {
                type: sql.NVARCHAR(50),
                val: "user1"
            },
            finalName: {
                type: sql.NVARCHAR(50),
                val: "user3"
            }
        }
    }).then( function( results ) {
        console.log("getting data: ");
        res.json(results[0][0]);

    }, function( err ) {
        console.log( "Error", err );
        res.status(500).send({ error: 'Something failed!' });
    } );

};

您可能需要按如下方式增加请求超时:

var connection = {
    name: "example-1",
    user: "user",
    password: "pass",
    host: "host_ip",
    database: "Test",
    requestTimeout: 300000
};    

还有一个 connectionTimeout 属性也可能会影响您。 但是这个问题很可能是requestTimeout

在我的情况下,错误是由于未提交的事务。 关闭 SQL Management Studio 可以释放表,因为我在从编辑器提交之前的事务时出错。

我使用该库实现的 mssql。 mssql 使用繁琐的方式连接到远程数据库。 就我而言,我在 Azure 函数中使用它,但没有调用

pool.close()

在每次执行结束时,所以它用尽了连接然后开始超时。 乏味可能应该提供更好的错误描述。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM