java.sql.SQLRecoverableException: Ошибка ввода-вывода: сброс соединения

#java #oracle #plsql

#java #Oracle #plsql

Вопрос:

Я выполняю один процесс, который вызывается одной хранимой процедурой из моего приложения. Ожидалось, что приложение вызовет процедуру, и как только выполнение процедуры будет завершено, управление будет возвращено обратно приложению и вернет статус выполнения из приложения. Приложение будет ждать, пока выполнение процедуры не будет завершено.

Но я получаю ошибку ниже ровно через 1 час после запуска задания. Процедура займет около

Исключение в потоке InputTask9 во времени Ср. 19 авг. 12:27:56 MST 2020 — java.sql.SQLRecoverableException: Ошибка ввода-вывода: код ошибки сброса соединения в потоке InputTask9 во времени Ср. 19 авг. 12:27:56 MST 2020 — сообщение об ошибке 17002 в потоке InputTask9 во времени Ср. 19 авг. 12:27:56 MST 2020 — ошибка ввода-вывода: причина ошибки сброса соединения в потоке InputTask9 в время Ср. 19 августа 12:27:56 по восточному времени 2020 — исключение java.net.SocketException: Сброс подключения

Я использую сервер приложений Unix и базу данных Oracle.

Заранее спасибо.

Комментарии:

1. Пожалуйста, покажите свой код.

2. Звучит как проблема с таймаутом сети / брандмауэра / SQL * Net, а не проблема с кодом. Вам нужно будет выяснить, какой.

3. @OldProgrammer Извините, у меня нет доступа к коду приложения.

4. @Alex Poole: Спасибо за ваш комментарий., параметр «SQL * Net timeout» настроен на стороне сервера unix или на стороне базы данных?

5. На сервере базы данных, но на уровне операционной системы, а не в базе данных. Скорее всего, это брандмауэр, или профиль пользователя в базе данных (idle_timeout), или даже в настройках пула подключений вашего приложения. Ошибка заставила бы меня сначала взглянуть на сеть / брандмауэр.