Проблема с Reconnect'ом Oracle-соединения

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Закрыто
Serggggg
Сообщения: 1
Зарегистрирован: Ср 13 май 2015 12:20

Проблема с Reconnect'ом Oracle-соединения

Сообщение Serggggg » Ср 13 май 2015 13:09

Доброго времени суток.
Помогите пожалуйста разобраться в проблеме.

Создается Oracle-соединение (TMyConnection = class(TUniConnection) с переопределенным методом DoError).
Для соединения устанавливаются SpecificOptions:
'Oracle.Direct=True'
'Oracle.Schema=' + <Schema>
Также у соединения Options.LocalFailover := True;
В методе OnConnectionLost устанавливается RetryMode := rmReconnect;

После установления соединения все отлично, все работает.
При разрыве связи начинают сыпаться ошибки ORA-03113 end-of-file on communication channel, как я понимаю, на уровне самого компонента. Далее происходит Reconnect. Но соединение при этом работать нормально уже не хочет. Своих параметров соединение не видит – схема теряется напрочь, хоть она и присутствует в SpecificOptions. Пересоздание SpecificOptions также не помогает. При ошибке выполнения запроса – если без явного указания схемы, снова срабатывает обработчик OnConnectionLost, а затем вылетает ORA-20000: ORU-10015: error:3 waiting for pipe message. Соединение невозможно нормально перевести в состояние Connected = False, а потом включить в True – постоянные ошибки.
Т.е. соединение, вроде как, переподключилось, “select 1 from dual” выполняет, но оно теперь какое-то неполноценное. Подозреваю, что при reconnect’е Oracle присваивает уже другой id сессии – отсюда и проблемы.
Подскажите пожалуйста, как лечить. Мне нужно просто сделать «тихий» reconnect, чтобы пользователь ничего не заподозрил – по мере сил. Или же вывести сообщение, что, мол, обрыв – перезапускайте программу.
СУБД и используемые средства разработки: Oracle 11g (11.2.01), Delphi XE, UniDAC v4.5.10.

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Проблема с Reconnect'ом Oracle-соединения

Сообщение Alexp » Пн 18 май 2015 07:57

Добрый день,

На последней версии UniDAC 6.1.3 описываемая ситуация не воспроизводится. Попробуйте воспроизвести ситуацию на последней триальной версии http://www.devart.com/unidac/download.html .

P.S. Чтобы происходил «тихий» reconnect в событии onError необходимо установить значения параметра Fail в False.

Reshetnyak
Сообщения: 3
Зарегистрирован: Чт 05 фев 2015 12:44

Re: Проблема с Reconnect'ом Oracle-соединения

Сообщение Reshetnyak » Пт 22 май 2015 09:56

Alexp писал(а):На последней версии UniDAC 6.1.3 описываемая ситуация не воспроизводится. Попробуйте воспроизвести ситуацию на последней триальной версии http://www.devart.com/unidac/download.html .
Здравствуйте.
Скажите пожалуйста, как попробовать новую версию, если триальность уже истекла, а у нас установлена предыдущая версия компонентов, а перед покупкой новой хотелось бы убедиться в том что проблема уже решена?

Закрыто