我们将带有通用池的Knex用作Oracle 11.2数据库的查询生成器和池管理器。
我们面临的问题是,一段时间以来,Knex /通用池开始积累连接并无法回收它们。
我试图将一些参数传递给Knex / Generic Pool,以使它们在某个时间点后终止连接,但看起来并没有解决。
包装版本:
Knex:v0.13.0
甲骨文数据库: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
}
}
Openshift print with environment variable DEBUG="Knex:*" showing a lot of clients waiting for connection
最佳答案
尝试knex 0.14.2,解决了一些与池相关的问题。创建/提交/回滚事务时,也请尝试添加一些调试信息。打开的事务将从池中获取连接,并且自动执行程序将其释放,直到事务结束。您可以通过设置DEBUG = knex:*环境变量来获取有关运行应用程序的池和事务的信息。
关于node.js - 如何使用Knex/通用池和Oracle管理连接池,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47751595/