Я пытаюсь добавить простые функции переключения при отказе в приложение, которое ведет переговоры с Oracle 11 базы данных. Чтобы проверить, что мой сеанс закончился, я выдаю простой запрос (выберите 1 из двойного).Простой запрос занимает несколько минут, чтобы выполнить на убитом/неактивном сеансе
Теперь, когда я пытаюсь имитировать сбои в сети, убивая мой сеанс Oracle, выполняя «alter system kill session» sid, serial '; и выполнить этот тестовый запрос занимает до 5 минут для приложения, чтобы обработать его и возвратить ошибку от Execute метод (я использую OCI API, C++):
вт 21 фев 21:22:47 HKT 2012 : Проверка соединения с тестового запроса ...
на TUE Feb 21 21:28:13 HKT 2012: Предупреждение - OCI_SUCCESS_WITH_INFO: 3113: ORA-03113: конец-из-файла на канале связи
Вт 21 февраля 21 : 28: 13 HKT 2012: Испытательное соединение не удалось, попытка восстановить соединение ...
Если я завершаю сеанс с ключевым словом «немедленное» в конце запроса, тогда тестовый запрос мгновенно возвращает ошибку.
Вопрос 1: почему для выполнения моего запроса требуется 5 минут? Существуют ли журналы Oracle/PMON, которые могут пролить свет на то, что происходит во время этой задержки?
Вопрос 2: Хороший выбор для использования 'alter system kill session' для имитации сбоя сети? Насколько близки результаты этого запроса к сбою сети в реальном времени между приложением и Oracle DB?
Update:
Oracle версии:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Производство
С секционирования, OLAP, интеллектуального анализа данных и Real Application Testing варианты
База данных Oracle 8? Вау! Расширенная поддержка 8i истек 31 декабря 2006 года и 8 закончилась 30 июня 2003 года! Возможно, вам стоит подумать о том, чтобы рекомендовать обновление до этого десятилетия. – Ollie
Какую версию клиента Oracle вы используете? Какая операционная система (и версия операционной системы) - это как база данных, так и клиент? И какова 4-значная версия базы данных Oracle, которую вы используете? Для точки Олли, если мы предположим, что «Oracle 8» означает «Oracle 8.1.7.4+», а не что-то еще раньше, это было из расширенной поддержки * длинного * времени. Если что-то в окружающей среде меньше десятилетия, вы, вероятно, столкнетесь с проблемами совместимости, которые могут усугубить ваши проблемы. –
@ Олли, мне жаль, что это должно быть опечатка. Вот что я вижу, когда подключаюсь к базе данных через sqlplus: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production С вариантами тестирования разделов, OLAP, интеллектуального анализа данных и реального приложения – krakovjak