2017-03-22 52 views
0

我有一個節點js應用程序與npm mssql模塊。我購買了雲端Windows 2012服務器,當試圖調用存儲過程時,它會拋出錯誤。節點mssql拋出錯誤:池正在耗盡,無法接受工作

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'); 
 
});

我曾嘗試尋找爲什麼會出現此錯誤,但可以」拋出錯誤你可以看到代碼throws the error here。我想知道這是否是服務器設置的問題?

沒有錯誤RSS在js文件中,我沒有任何問題在我的Windows 10本地機器上運行。有任何想法嗎?

+0

你在哪裏關閉你的連接?如果你不關閉他們,我懷疑他們會保持開放並最終超時。根據您請求的速度,您可能會用完連接,因爲它們在池中保持打開 – Psi

+0

@Psi看起來好像在連接完成之前發生錯誤。我在最後添加了connection.close(),但那沒有做任何事情。根據[docs here](https://www.npmjs.com/package/mssql#prepared-statement),它說調用ps.unprepare()應該釋放連接回池。 – Scott

+0

有什麼建議嗎? – Scott

回答

0

這是AWS的防火牆問題。我無法確定如何通過亞馬遜解決它。但我把我的數據庫移動到另一臺服務器,它工作。

相關問題