Проблема многопоточности при получении данных из базы данных Oracle (SID базы данных автоматически убивается) - PullRequest
0 голосов
/ 12 октября 2011

У меня есть Java-программа, которая имеет 12 потоков с разными приоритетами. 12 из них извлекают некоторую информацию из базы данных Oracle (база данных очень велика по размеру, и каждый запрос занимает от 60 до 90 минут для завершения выполнения).

Иногда программа работает нормально и дает точный результат, а иногда из этих 12 потоков один или два выходили из строя, не выдавая никаких исключений в консоль. (Все исключения обрабатываются внутри программы)

Мы заметили, что SID базы данных автоматически убивается через некоторое время в этой ситуации.

  1. Если SID уничтожен БД, если соединение завершается посередине, моя программа должна выдать исключение на консоль. Чего здесь не происходит. Программа продолжает работать ....
  2. Мы проверили с администратором базы данных. Они сказали, что нет никаких блокировок или условий ожидания, или для профиля базы данных не задан параметр времени ожидания сеанса по умолчанию. И максимальное количество разрешенных соединений - 1000.

Тем не менее, моя программа иногда не работает нормально. Почему это происходит? Это ошибка приложения? или ошибка базы данных?

Я использую Java5 и Oracle 9i, а промежуточное ПО - JDBC.

Пожалуйста, предложите ..... Спасибо, ABCReddy

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...