Quantcast
Channel: DA-SOFT Technologies - Forum
Viewing all articles
Browse latest Browse all 1040

Subject: проблемы при использовании TADEventAlerter - by: Oleg D.

$
0
0
Hi. Начал использовать TADEventAlerter и возникли непонятные ситуации. если пропала и восстановолиась связь с сервером БД, то появляется ошибка Project xxxx.exe raised exception class EAccessViolation with message 'Access violation at address 008F0693 in module 'xxxx.exe'. Read of address 043D0030'. при остановке становится в эту процедуру [code]procedure TADPhysEventThread.DoTimeout; begin >>> if Active and ((FAlerter Nil) and (FAlerter.GetOptions.Timeout > -1)) then if FAlerter.GetOptions.Synchronize then TADThread.Synchronize(FAlerter.InternalTimeout) else FAlerter.InternalTimeout; end;[/code] при завершении программы выдается ошибка и соответствнно программа не выгружется из процессов. Схожее поведение и при UnRegister. Project xxxx.exe raised exception class EAccessViolation with message 'Access violation at address 05A2DBA0 in module 'SSLEAY32.dll'. Read of address FEEEFFEA'. при отладке становится в точку [code]procedure TADPhysPgEventThread.Execute; var sName, sParam: String; iProcID: Integer; begin while not Terminated and FAlerter.IsRunning do try with TPgConnection(FAlerter.FWaitConnection.CliObj) do if CheckForInput() then while ReadNotifies(sName, iProcID, sParam) do FAlerter.FMsgThread.EnqueueMsg(TADPhysPgEventMessage.Create( sName, iProcID, sParam)); except on E: EADDBEngineException do if E.Kind ekCmdAborted then begin Terminate; FAlerter.AbortJob; end; end; >>>end;[/code] создаю уведомления след образом [code] ADEventAlerter1.Options.Kind := ''; ADEventAlerter1.Options.Synchronize := True; ADEventAlerter1.Options.AutoRegister := False; ADEventAlerter1.Names.Clear; ADEventAlerter1.Names.Add('notify1'); ADEventAlerter1.Names.Add('notify2'); ADEventAlerter1.Names.Add('cnotify3'); ADEventAlerter1.Names.Add('notify4'); ADEventAlerter1.Names.Add('notify5'); ADEventAlerter1.Names.Add('notify6'); ADEventAlerter1.Names.Add('notify7'); ADEventAlerter1.Names.Add('notify8'); ADEventAlerter1.Register;[/code] в качестве сервера используется Postgresql 9.1 соедиенение Polled, паралельно крутится несколько thread с активными запросами. До использования данного компонента никаких проблем не было. Может быть есть какието ньюансы при работе с Postgresql ? P.S. Добавил тестовый проект. http://www.da-soft.com/images/fbfiles/files/EventAlerterTest.zip

Viewing all articles
Browse latest Browse all 1040

Trending Articles