【DM版本】: DM8
【操作系统】: windows server 2016
【CPU】: x86
【驱动】: Node.js
【问题描述】:
以下是 Node.js 代码,为了说明问题,故意将创建连接池的参数 poolMin和poolMax设置为1:
const db = require("dmdb");
// 基础测试
db.createPool({
connectString: "dm://SYSDBA:PASSWORD\@localhost:5236",
poolMin: 1,
poolMax: 1
}).then(function(pool) {
console.log('t1', new Date().getTime());
// 第一段:
pool.getConnection(function(err, conn) {
console.log('t2', new Date().getTime());
if (err) {
console.error('Failed to get Connection.');
console.error(err);
return
}
conn.execute('SELECT * FROM PRODUCTION.PRODUCT LIMIT 1', [], function(err, result) {
if (err) {
console.error('SQL ERROR')
console.error(err);
return
}
console.log(result);
// conn.close(); 此处不关闭。
// 文档说 close 和 release 方法一样,都是关闭连接。
})
});
// 第二段:
pool.getConnection(function(err, conn) {
// 此处始终无法获取连接。
console.log('t3', new Date().getTime());
if (err) {
console.error('Failed to get Connection.');
console.error(err);
return
}
conn.execute('SELECT * FROM PRODUCTION.PRODUCT LIMIT 1', [], function(err, result) {
if (err) {
console.error('SQL ERROR')
console.error(err);
return
}
console.log(result);
})
});
}) .catch(function(err) {
console.log(err);
});
如上代码,第一段查询完成后,没有执行关闭连接,导致第二段查询始终无法获取连接。请指导如何正确使用连接池,避免连接完成查询后,连接池内重新创建?
文档说 close 和 release 都是关闭连接:
求指导!