Ошибка закрытия соединений пула node-oracledb с Oracle DB и 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 для базы данных


person franco pina    schedule 04.01.2020    source источник


Ответы (1)


Просмотрите pool.close() документацию:

  1. Вероятно, вы захотите указать значение drainTime, иначе пул может не закрыться.

  2. Возможно, вам потребуется добавить DISABLE_OOB=ON в файл sqlnet.ora.

person Christopher Jones    schedule 06.01.2020
comment
Второй вариант мне подошел, большое спасибо! - person franco pina; 09.01.2020
comment
Если у вас есть клиентские библиотеки и БД 19c, этот параметр не нужен явно: он будет автоматически определен Oracle. - person Christopher Jones; 12.01.2020