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

Discussion of open issues, suggestions and bugs regarding ODAC (Oracle Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
sinys
Posts: 186
Joined: Tue 21 Feb 2012 03:44

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

Post by sinys » Thu 05 Jul 2012 11:37

Как правильно организовать переподключение сессии при ошибке "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;
Но переподключение почему-то не происходит, сразу вываливается ошибка.

AlexP
Devart Team
Posts: 5530
Joined: Tue 10 Aug 2010 11:35

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

Post by AlexP » Fri 06 Jul 2012 09:03

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.

Post Reply