Page 1 of 1

Как правильно организовать переподключение?

Posted: Thu 05 Jul 2012 11:37
by sinys
Как правильно организовать переподключение сессии при ошибке "ORA-03113 Принят сигнал конца файла по коммуникационному каналу" и тому подобных когда происходит разрыв связи.

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

находил на форуме следующий фрагмент кода:

Code: Select all

 procedure TDM.OraSession1ConnectionLost(Sender: TObject; Component: TComponent;
  ConnLostCause: TConnLostCause; var RetryMode: TRetryMode);
begin
  case ConnLostCause of
    clExecute,
    clOpen,
    clRefresh,
    clApply,
    clServiceQuery,
    clTransStart,
    clConnectionApply: RetryMode := rmReconnectExecute;
    clConnect, clUnknown: RetryMode := rmReconnect;
  end;
end;
Но переподключение почему-то не происходит, сразу вываливается ошибка.

Re: Как правильно организовать переподключение?

Posted: Fri 06 Jul 2012 09:03
by AlexP
hello,

This is an English forum, you can ask Russian quetsions at the Russian forum http://forums.devart.com/ru/viewforum.php?f=27.

To make the OnConnectionLost event work, you should set the OraSession.Options.LocalFailover option to True.