Member 13085354 Ответов: 1

Узел mssql выдает ошибку: пул истощается и не может принять работу


У меня есть приложение node js с модулем npm mssql. Я купил облачный сервер Windows 2012, и при попытке вызвать хранимую процедуру он выдает ошибку.

Выдает ошибку в ps. prepare ("exec usp_Get_Cars @param", функция (err)

var express = require('express');
var app = express();
var router = express.Router();
var util = require('util');
var recieve = require('./recieve');
var userID = "7DF506E1-700D-4D30-8162-74A903743561";

app.use('/node_modules', express.static(__dirname + '/node_modules'));
app.use('/style', express.static(__dirname + '/style'));
app.use('/script', express.static(__dirname + '/script'));

var sql = require('mssql');

var config = {
  user: 'prod_admin',
  password: 'myPassword',
  server: 'serverName',
  database: 'elements'
};

app.get("/getCars/:userID", function(req, res) {
  var userID = req.params.userID;
  var connection = new sql.Connection(config, function(err) {
    var ps = new sql.PreparedStatement(connection);
    ps.input('param', sql.NVarChar(sql.MAX));
    ps.prepare("exec usp_Get_Cars @param", function(err) {
      ps.execute({
        param: userID
      }, function(err, recordset) {
        console.log('Recordset: ' + JSON.stringify(recordset));
        res.send(recordset);
        ps.unprepare(function(err) {
          console.log('Error on unprepare: ' + err);
        });
      });
    });
  });
});

app.get('/', function(req, res) {
  res.sendFile('home.html', {
    'root': __dirname + '/templates'
  });
});

app.listen(3000, function() {
  console.log('Node server running @ http://localhost:3000');
});

Есть идеи?

Что я уже пробовал:

Я действительно пытался найти причину возникновения этой ошибки,но не смог найти ничего, относящегося к mssql или узлу. Вы можете увидеть код, который бросает ошибку здесь.

Похоже, что ошибка возникает еще до того, как соединение установлено. Я добавил connection. close () в конце, но это ничего не дало. И в соответствии с документы здесь, он говорит, что вызов ps. unprepare () должен освободить соединение обратно в пул. Однако при запуске этой программы на моей локальной машине с Windows 10 она работает просто отлично.

Может быть, мне нужно что-то настроить на сервере?

1 Ответов

Рейтинг:
4

Member 13085354

Это была проблема брандмауэра с AWS. Я не смог определить, как это исправить через Amazon. Но я перенес свою базу данных на другой сервер, и это сработало.


Patrice T

Воспользуйся Принять ответ чтобы закрыть вопрос.