Java 红移连接未正确关闭

Java 红移连接未正确关闭,java,node.js,amazon-redshift,connectivity,Java,Node.js,Amazon Redshift,Connectivity,我正在使用redshift处理Java和Node Js。不久前,我们发现在所有关闭连接调用上都没有创建断开连接事件。 Java(使用redshift.jdbc41): 和节点Js(使用pg模块)示例: 所以在执行查询后调用代码来关闭连接,但在stl_connection_日志中,部分连接只创建了启动会话事件,而没有断开会话,所以许多连接保持活动状态达数天,并且在客户端应用程序停止后不会重置 有人能建议如何解决这个问题吗?可能需要一些红移配置或在客户端应用程序中的其他工作方式?您提到的Node J

我正在使用redshift处理Java和Node Js。不久前,我们发现在所有关闭连接调用上都没有创建断开连接事件。 Java(使用redshift.jdbc41):

和节点Js(使用pg模块)示例:

所以在执行查询后调用代码来关闭连接,但在stl_connection_日志中,部分连接只创建了启动会话事件,而没有断开会话,所以许多连接保持活动状态达数天,并且在客户端应用程序停止后不会重置


有人能建议如何解决这个问题吗?可能需要一些红移配置或在客户端应用程序中的其他工作方式?

您提到的Node Js代码对我来说很好。如果您想通过红移强制关闭连接,可以使用下面的查询

select pg_terminate_backend (pg_backend_pid());

如果我做了一个错误的假设,请评论,我将重新关注我的答案。

您可以在连接字符串中设置idleTimeoutMillis:。
var client = new pg.Client(conString);
client.connect(function (err) {
    if (err) throw err;
    client.query(query, function (err, result) {
        client.end(function (err) {if (err) throw err;});
        ...
    });
});
select pg_terminate_backend (pg_backend_pid());