Сброс подключения к БД происходит из-за параметров в БД Oracle? - PullRequest
0 голосов
/ 26 июня 2018

Я работаю с оракул БД с небольшим опытом в Java. AM пытается понять исключение (повторяющееся) и как его избежать

Существует ежемесячная работа, которая вызывает программу Java, и эта программа Java взаимодействует с БД Oracle. Каждый месяц программа прерывается с исключением «Сброс соединения по пиру». Все, что я знаю о Java-программе, это то, что она имеет 20 потоков и выполняет выборку / вставку данных в БД.

Я скопировал данные из prod в тестовую среду и запустил тот же процесс. Проблем не было.

Возможно ли, что конфигурация в Prod и Dev отличается?

  1. Я проверил время простоя и время соединения в обеих средах, они были установлены как неограниченные
  2. Я проверил лимит open_cursor, и они были одинаковыми, в prod и test env.

  3. Я уменьшил open_cursor с 10k до 5k в более низкой среде, затем я получил максимальное исключение open_cursor. Я обнаружил, что несколько подключений к БД не были закрыты должным образом. Мы исправили это в коде и успешно запустили в тестовой среде (с open_cursor как 5K).

Я хочу знать,

  1. Должен ли я проверить, какая конфигурация / параметр заставил его работать в тестовой среде?
  2. Приведет ли отказ от подключений к сбросу подключения по исключению однорангового узла?
  3. Тест env используется меньше всего, а prod DB используется многими заданиями. Это имеет значение?

1 Ответ

0 голосов
/ 26 июня 2018

Это происходит, когда приложение установило соединение с БД, но ни одна транзакция не выполняется. Как ваш интервал работы дБ ежемесячно. Если вы используете пул соединений c3p0, он имеет функцию для запуска тестового запроса в фоновом режиме, который удаляет оставленные соединения БД из пула.

Если вы используете какой-то другой пул соединений, он будет иметь такую ​​функциональность. Или для взлома вы можете написать поток опроса, который будет выполнять случайную операцию дБ в заданный интервал времени (9 часов в случае MySQL). Таким образом, соединения БД будут всегда активны.

...