NodeJSアプリケーションがあり、Sequelizeを使用してPostgresデータベースに接続しています。私の開発者のversiónすべて正常に動作しますが、後で私の生産バージョンでは、2つのマシンからのいくつかの呼び出しは、次のエラーが発生しますSequelizeConnectionError: FATAL: remaining connection slots are reserved for non-replication superuser connections.
多くの質問では、ソリューションは、データベース内のmax_connectionsを増加させると言う。実際にこのパラメータを100に設定していますが、これが問題かどうかはわかりません。SequelizeConnectionError:FATAL:残りの接続スロットが非複製スーパーユーザー接続用に予約されています
問題はsequelize設定になります。手動で接続を閉じることはできますか?ここ
は私のconfig.jsonファイルである
{
"development": {
"username": "pys-form",
"password": "pys-form",
"database": "PYS-FORM-COL",
"host": "127.0.0.1",
"dialect": "postgres"
},
"production": {
"username": "pys-form",
"password": "pys-form",
"database": "PYS-FORM-COL",
"host": "190.60.234.132",
"dialect": "postgres"
}
}
index.jsは、あなたはおそらく、オープンな接続が、それを閉じていない
var fs = require("fs");
var path = require("path");
var Sequelize = require("sequelize");
var env = process.env.NODE_ENV || "production";
var config = require(__dirname + '/../config/config.json')[env];
var sequelize = new Sequelize(config.database, config.username, config.password, config);
var db = {};
fs
.readdirSync(__dirname)
.filter(function(file) {
return (file.indexOf(".") !== 0) && (file !== "index.js");
})
.forEach(function(file) {
var model = sequelize.import(path.join(__dirname, file));
db[model.name] = model;
});
Object.keys(db).forEach(function(modelName) {
if ("associate" in db[modelName]) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
こんにちは@Adam答えのためのおかげで、私は、接続が閉じられますが、データベースがどのようにGUIなしでUbuntuのサーバにあったされていないことを同じ容疑者ですpsqlでそれを確認できますか? – oriaj
私は自分の答えを更新したので、単にSQLで接続をチェックすることができます。 – Adam