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
↧