【发布时间】:2018-05-24 21:32:22
【问题描述】:
我们使用带有通用池的 Knex 作为 Oracle 11.2 数据库的查询构建器和池管理器。
我们面临的问题是,有一段时间Knex / generic-pool 开始积累连接,无法回收。
我尝试将一些参数传递给 Knex / Generic Pool 以使它们在某个时间点后终止连接,但看起来它没有成功。
包版本:
- Knex:v0.13.0
- Oracledb:v1.13.1
- 通用池:v2.5.4
Knex 配置:
{
client: 'oracledb',
connection: {
user: DB_USER,
password: DB_PASSWORD,
host: `${DB_HOST}:${DB_PORT}`,
database: DB_NAME
},
debug: true,
fetchAsString: ['number', 'clob'],
acquireConnectionTimeout: 843600000,
pool: {
min: 2,
max: 150,
acquireTimeoutMillis: 100000,
evictionRunIntervalMillis: 120000,
maxWaitingClients: 100,
idleTimeoutMillis: 100000
}
}
【问题讨论】:
-
通用池可能有一些不错的功能,但您会失去使用 12.2 客户端(可用于连接到 11.2 DB)的轻量级 node-oracledb 连接池 ping 以及还有所有的东西,比如 FAN 和 AC。