簡體   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