Javascript 如何保持PostgreSQL连接打开?
因此,我基本上是这样创建我的db客户端的:Javascript 如何保持PostgreSQL连接打开?,javascript,node.js,postgresql,Javascript,Node.js,Postgresql,因此,我基本上是这样创建我的db客户端的: client = new pg.Client(conString); client.connect(); 但在数据库上运行一段时间后,客户端可能会断开连接,并出现以下错误: "Error: read ECONNRESET" 我试着这样做来保持它的开放性: db.client.on('error', function(e){ db.client.connect(); }); 但这不起作用,我还是会出错。有人曾经处理过这个问题
client = new pg.Client(conString);
client.connect();
但在数据库上运行一段时间后,客户端可能会断开连接,并出现以下错误:
"Error: read ECONNRESET"
我试着这样做来保持它的开放性:
db.client.on('error', function(e){
db.client.connect();
});
但这不起作用,我还是会出错。有人曾经处理过这个问题,并且知道如何解决吗?听起来您可能遇到了由于NAT连接跟踪表或类似表过期而导致连接断开的问题 启用TCP keepalives,或者如果您的客户端支持它,则在客户端启用
如果不能使用TCP keepalives,则可以改为发送空查询,即将空字符串作为查询发送。这在PostgreSQL中是有效和合法的,将强制客户端和服务器之间进行往返,但不会给日志添加任何干扰。您不能只使用node postgres提供的默认连接池吗?我同时使用这两种连接池,但您不能使用该池进行事务处理。您的解决方案是使用适当的连接池,特别是pgbouncer或pgpool II。