node.js - 如何关闭 JDBC 连接
问题描述
我有一个通过 JDBC 连接执行存储过程(Caché)的功能
async function callStored(query, callBack) {
var hsqldb = new JDBC(jdbcconfig);
hsqldb.initialize(function(err) {
if (err) {
console.log(err);
}
});
hsqldb.reserve(function(err, connObj) {
if (connObj) {
console.log("Using connection: " + connObj.uuid);
var conn = connObj.conn;
conn.createStatement(function(jdbcerr, statement) {
if (jdbcerr) {
console.log('jdbc err', jdbcerr);
}
statement.executeQuery(query, function(statserr, resultset) {
if (statserr) {
console.log('stats err', statserr);
}
resultset.toObjArray(function(arrayerr, results) {
if (arrayerr) {
console.log('arrayerr err', arrayerr);
}
hsqldb.release(connObj, function(relerr) {
if (relerr) {
console.log('relerr err', relerr);
}
hsqldb.purge(function(purgerr) {
if (purgerr) {
console.log('purgerr err', purgerr.message);
}
})
})
callBack(results);
})
})
})
}
})
}
我想在获取数据后关闭连接,但连接仍在连接。我能怎么做?
解决方案
https://github.com/CraZySacX/node-jdbc#readme
从文档中听起来您可能不想手动关闭连接,而只是将它们释放回池中。您可以通过最大空闲时间来自动关闭陈旧的连接
“如果你在配置中为新的连接池传递 maxidle 属性,pool.reserve() 将关闭陈旧的连接,并返回一个足够新鲜的连接,或者一个新的连接。maxidle 可以是表示自以来最大毫秒数的数字最后一次使用连接,连接仍然被认为是活动的(没有额外调用数据库来检查连接是否有效)。如果 maxidle 是假值或配置中不存在,则不会使用此功能效果。此功能非常有用,当连接在一定时间后从服务器端自动关闭时,以及不适合使用连接保活功能时。
推荐阅读
- rest - 用于返回布尔值的 REST API 设计
- javascript - 带有通配符的 URL var
- python - 如何使用 Python 在 Linux 服务器中自动创建用户
- sql - SQL Query 以通过关系查找在 has_many 中具有某些记录的记录
- php - 如何在 php 中使用 echo 或 header 重定向页面?(在 if 条件下)
- ruby - 在渲染之前验证 ERB 模板
- visual-studio-2015 - 设置新电脑。需要构建VS2015 C++代码。我必须安装VS2015吗?
- php - 在 apache 和 php-7.3 上安装 wordpress
- node.js - 如何使用 Fetch API 忽略 SSL/TLS 验证?
- c# - .NET Core 128kb 部署到 Azure 应用服务的文件大小限制