2017-11-21 19 views
0

종료 할 때 노드 응용 프로그램이 db 세션을 닫지 않습니다. 현재 node-cleanup 라이브러리를 사용 중입니다. 그러나 풀 연결이 특정 번호를 초과하면 pool.close() 함수가 해결할 시간이 걸리므로 노드가 풀을 닫지 않고 종료되고 세션이 db.Have에서 비활성 상태로 유지되고 Oracle에서 적절한 시간 초과가 이미 설정됩니다. DB를 사용하여 비활성 세션을 저격하고 정리합니다. 하지만, 노드 프로세스 종료를 막을 수있는 방법이 있다는 것을 알고 싶다면 pool.close()이 해결됩니다.노드 oracledb 연결 풀이 노드 프로세스 종료 전에 닫히지 않음

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

하지만 아래 서비스를 사용하고 노드를 종료하면 모든 db 세션이 제대로 닫힙니다.

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

답변