У меня есть Java-программа, которая имеет 12 потоков с разными приоритетами. 12 из них извлекают некоторую информацию из базы данных Oracle (база данных очень велика по размеру, и каждый запрос занимает от 60 до 90 минут для завершения выполнения).
Иногда программа работает нормально и дает точный результат, а иногда из этих 12 потоков один или два выходили из строя, не выдавая никаких исключений в консоль. (Все исключения обрабатываются внутри программы)
Мы заметили, что SID базы данных автоматически убивается через некоторое время в этой ситуации.
- Если SID уничтожен БД, если соединение завершается посередине, моя программа должна выдать исключение на консоль. Чего здесь не происходит. Программа продолжает работать ....
- Мы проверили с администратором базы данных. Они сказали, что нет никаких блокировок или условий ожидания, или для профиля базы данных не задан параметр времени ожидания сеанса по умолчанию. И максимальное количество разрешенных соединений - 1000.
Тем не менее, моя программа иногда не работает нормально.
Почему это происходит? Это ошибка приложения? или ошибка базы данных?
Я использую Java5 и Oracle 9i, а промежуточное ПО - JDBC.
Пожалуйста, предложите .....
Спасибо,
ABCReddy