Я работаю с оракул БД с небольшим опытом в Java. AM пытается понять исключение (повторяющееся) и как его избежать
Существует ежемесячная работа, которая вызывает программу Java, и эта программа Java взаимодействует с БД Oracle. Каждый месяц программа прерывается с исключением «Сброс соединения по пиру». Все, что я знаю о Java-программе, это то, что она имеет 20 потоков и выполняет выборку / вставку данных в БД.
Я скопировал данные из prod в тестовую среду и запустил тот же процесс. Проблем не было.
Возможно ли, что конфигурация в Prod и Dev отличается?
- Я проверил время простоя и время соединения в обеих средах, они были установлены как неограниченные
Я проверил лимит open_cursor, и они были одинаковыми, в prod и test env.
Я уменьшил open_cursor с 10k до 5k в более низкой среде, затем я получил максимальное исключение open_cursor.
Я обнаружил, что несколько подключений к БД не были закрыты должным образом. Мы исправили это в коде и успешно запустили в тестовой среде (с open_cursor как 5K).
Я хочу знать,
- Должен ли я проверить, какая конфигурация / параметр заставил его работать в тестовой среде?
- Приведет ли отказ от подключений к сбросу подключения по исключению однорангового узла?
- Тест env используется меньше всего, а prod DB используется многими заданиями. Это имеет значение?