簡體   English   中英

節點 oracledb 連接池在節點進程終止前未關閉

[英]Node oracledb connection pool not closing before node process termination

終止時的節點應用程序不會關閉數據庫會話。 我目前正在使用node-cleanup庫,但是當池連接超過一定數量時, pool.close()函數將需要一些時間來解析,因此節點在不關閉池的情況下終止並且會話在 db.Have 中保持不活動狀態在 oracle DB 中設置適當的超時,以便截斷和清理不活動的會話。 但是想知道有什么方法可以阻止節點進程退出,以便解決pool.close()問題。

nodeCleanup(function(exitCode, signal) {
    console.log('Node server exiting with signal : ' + signal);
    console.log('Node server exiting with exitCode : ' + exitCode);
    db.getPool().close();
});

但是,如果我使用以下服務然后退出節點,則所有數據庫會話都會正確關閉。

app.get('/closePool', function(req, res, next) {
    db.getPool().close(function(err) {
        if (err)
            next(err);
        res.send('Pool closed');
    });
})

您是否嘗試過使用beforeExit事件?https://nodejs.org/api/process.html#process_event_beforeexit

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM