为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:DM Database Server 64 V8
【操作系统】:中标麒麟
【CPU】:Intel® Xeon® Silver 4210 CPU @ 2.20GHz
【问题描述】*:连接要如何才会回收数据库连接,不让连接池满。
↓报错
!查询代码块
在哪里配置可以让连接池不会满
以下属性的修改会影响由 dmdb 创建出来的 Pool 和 Connection 对象。
poolMax Number 最大连接数,默认 4
poolMin Number 最小连接数,默认 0
poolTimeout Number 连接闲置多久后自动关闭,单位秒,默认 60
案例:
/* 创建连接池 /
async function createPool() {
try {
return db.createPool({
connectString: “dm://SYSDBA:SYSDBA@localhost:5236?autoCommit=false”,
poolMax: 10,
poolMin: 1
});
} catch (err) {
throw new Error("createPool error: " + err.message);
}
}
/ 获取数据库连接 */
async function getConnection() {
try {
return pool.getConnection();
} catch (err) {
throw new Error("getConnection error: " + err.message);
}
}
建议参考下数据库安装目录的dmdbs/doc下面的程序员操作手册
建议再排查下select PARA_NAME,PARA_VALUE from v$dm_ini where para_name like ‘%MAX_SESSIONS%’;是不是已经调大了,默认是100。
用dm disql工具执行sql:
ALTER SYSTEM SET ‘MAX_SESSIONS’ =1000 spfile;
执行完重启服务试一下