繁体   English   中英

如何使用Knex /通用池和Oracle管理连接池

[英]How to manage connection pool with Knex/generic-pool and Oracle

我们将带有通用池的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
    }
}

使用环境变量DEBUG =“ Knex:*”的Openshift打印,显示许多客户端正在等待连接

尝试knex 0.14.2,解决了一些与池相关的问题。 创建/提交/回滚事务时,也请尝试添加一些调试信息。 打开的事务将从池中获取连接,并且会自动释放它,直到事务结束为止。 您可以通过设置DEBUG = knex:*环境变量来获取有关运行应用程序的池和事务的信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM