关闭与 Oracle DB 和 Node.js 的 node-oracledb 池连接时出错

Error closing node-oracledb pool connections with Oracle DB and Node.js

我在关闭与 Oracle 数据库的连接时遇到问题。 首先,我毫无问题地创建了连接。

  try {
  console.log('Initializing database module');

  await database.initialize();
  } catch (err) {
  console.error(err);

  process.exit(1); // Non-zero failure code
  }


async function initialize() {
  console.log(dbConfig.hrPool);
  const pool = await oracledb.createPool(dbConfig.hrPool);
}

module.exports.initialize = initialize;

当我想关闭连接时,应用程序正在等待,没有任何响应,所以我关闭连接

  try {
  console.log('Closing database module');
  console.log(" here 1");
  await database.close();// line  whit problem
  console.log(" here 2");
  } catch (err) {
  console.log('Encountered error', e);

  err = err || e;
  }

async function close() {
  await oracledb.getPool().close();
}

module.exports.close = close;


另请注意,我为数据库使用了 vpn 连接

评论pool.close()documentation:

  1. 您可能想要指定一个 drainTime 值,否则池可能不会真正关闭。

  2. 您可能需要将 DISABLE_OOB=ON 添加到 sqlnet.ora 文件