2017-03-22 3 views
0

nss mssqlモジュールを持つノードjsアプリケーションがあります。私はクラウドWindows 2012サーバーを購入し、ストアドプロシージャを呼び出そうとすると、エラーをスローします。ノードmssqlはエラーをスローします:プールは排水しており、仕事を受け入れることができません

「私はこのエラーが発生する理由を探してみてくださいすることができますが、なかったps.prepare( "実行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またはノードに関連するものは見つかりません。throws the error hereのコードが表示されます。これがサーバーの設定に問題があるのでしょうか?

エラーはありませんjsファイルのrsと私はWindowsのローカルマシン上でこれを実行する問題はありません。何か案は?

+0

接続をどこで終了しますか?あなたがそれらを閉じなければ、私は彼らが開いたままになり、最終的にタイムアウトすると思う。あなたが要求する速さによっては、接続がプール内で開いたままになっている可能性があります。 – Psi

+0

@Psi接続が行われる前にエラーが発生したようです。私は最後にconnection.close()を追加しましたが、それは何もしませんでした。また、[docs here](https://www.npmjs.com/package/mssql#prepared-statement)によると、ps.unprepare()を呼び出すと接続がプールに戻されるはずです。 – Scott

+0

提案がありますか? – Scott

答えて

0

これはAWSのファイアウォールの問題でした。私はAmazonを介してそれを修正する方法を決定することができませんでした。しかし、データベースを別のサーバーに移動してしまいました。

関連する問題