powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Периодически не срабатывает обработчик события
25 сообщений из 50, страница 1 из 2
Периодически не срабатывает обработчик события
    #39523281
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!

Столкнулся со проблемой, что ПЕРИОДИЧЕСКИ не срабатывает обработчик ошибок. Есть ПО установленное на сервере. Параметры сервера:

Windows Server 2008 R2 Enterprise
ОЗУ: 8ГГб

FireBird: WI-V2.5.7.27050 Firebird 2.5 - Classic (проблема была и на FB 2.5.2)
Версия fbclient.dll соответствует установленной версии FB. Других версий FB на сервере не установлено и никогда не было.

ПО написана с использование Delphi XE5 и FireDac. Общее количество событий зарегистрированных в FDADEventAlerter = 7

Все пользователи ПО запускают ее на сервере через RDP или RemoteApp (раскидывали прогу по сетевым компам проблема не исчезает).

Пытался менять порт, но все равно проблема остается.

Может кто-то уже сталкивался с такой ситуацией? Что порекомендуете?

Спасибо.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523304
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Что порекомендуете?

Не использовать события если не понимаете как они работают и не умеете программировать
непосредственно на ISC API. Все дельфийские обёртки, что я встречал, вызывают только
недоумение своей кривизной (которая неизбежна в тщетных попытках сделать их универсальными).
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523315
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Что порекомендуете?1. 100500 раз перепроверить свой код.
2. Перепроверить код "того парня" - FireDac в данном случае.
3. Сделать воспроизводимый пример дя трекера, если ошибка не нашлась на предыдущих шагах.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523337
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladFish.K.A.Что порекомендуете?1. 100500 раз перепроверить свой код.
2. Перепроверить код "того парня" - FireDac в данном случае.
3. Сделать воспроизводимый пример дя трекера, если ошибка не нашлась на предыдущих шагах.
0. Выключить антивирусы, брандмауэры, фаерволы etc.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523341
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad, проекти переписывался FibPlus -> AnyDac -> FireDac и постоянно возникали эти проблемы.
Причем у себя я эту проблему словить не могу.

Выключить антивирусы, брандмауэры, фаерволы - выключены, настроены. Порты открыты.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523346
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какую-нибудь закономерность не-срабатывания заметили?

P.S. Клиентское ПО на том же сервере, что и FB, правильно?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523348
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov, Вы правы. Я не умею программировать непосредственно на ISC API....Есть какие-то примеры. Что почитать?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523349
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гаджимурадов Рустам,

Вообще закономерности не увидел. Есть клиент у которого стоит на серваке, есть клиенты у которые и так и так.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523353
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.,

можно обратить внимание на длительность подключения.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523368
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таки явно прописать директиву RemoteAuxPort в конфиге Firebird на сервере и в файрволах этот же порт открыть
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523372
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемы с дополнительным подключением могут вызвать тотальную неработу событий. А у
аффтара - теряются некоторые из них. Это вызывается проблемами синхронизации потоков в
приложении.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523419
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Что порекомендуете?
1. Определиться, что значит "Не срабатывают". Клиент запущен всегда и получает 1-е и 3-е событие, а 2-е не получает? Может, он был закрыт или отсоединен от базы в этот момент? Или события в этот момент не были зарегистрированы?
В 1-ю очередь необходимо железно установить, что события таки пропускаются в идеальном состоянии клиента.
2. Завязываться на то, что событие будет точно получено и обработано в любом случае нельзя (клиент может начать закрываться в момент, когда сервер ему его шлет - один из примеров).
Необходимо строить логику таким образом, чтобы получение события только помогало, но не было обязательным для верной работы логики программы.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523456
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.hvlad, проекти переписывался FibPlus -> AnyDac -> FireDac и постоянно возникали эти проблемы.
Причем у себя я эту проблему словить не могу.А откуда уверенность, что проблема вообще есть ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523476
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

При запуске программы я делаю проверку. Добавляю строку в таблицу и получаю соответствующее событие. Вот и получается, что у меня может N раз нормально открыться, а потом M без получения события.
Если ПО открылось нормально и проверка на получения события прошла нормально, то потом в запущенном экземпляре ПО проблем не возникает.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523478
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockНеобходимо строить логику таким образом, чтобы получение события только помогало, но не было обязательным для верной работы логики программы.

Логика следующая. Есть ПО1 и ПО2. ПО1 сохраняет определенную информацию в базу, после commit ПО2 должна получить эту информацию.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523483
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.,

всё что можно сказать на данный момент - ошибка в 17-ой строке, увы.

Значимой информации нет. Есть только стук в подвале.
Нужно или воспроизводить, или искать ошибку у себя.

PS Что в обработчике события ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523485
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad, сорри. Не совсем понял что надо?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523491
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.hvlad, сорри. Не совсем понял что надо?Я имел в виду - что написано в обработчике события ? Которое наверняка есть в FDADEventAlerter.
Хоть тут Delphi никто и не знает - показывай, вдруг что увидим.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523493
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Если Вы имеете ввиду событие компонента onAlert, то там вообще все просто:

Код: pascal
1.
2.
3.
4.
5.
    //----
    if CompareText(AEventName, 'EVENTTEST') = 0 then
    begin
      Timer1.Enabled := False;
    end;
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523498
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Если ПО открылось нормально и проверка на получения события прошла нормально, то потом в запущенном экземпляре ПО проблем не возникает.
Необходимо убедиться, что регистрация событий всегда проходит, и без ошибок. Я не знаю, как там в FDADEventAlerter, но скорее всего там есть что-то типа AutoRegister, так вот я бы его отключил и вызвал регистрацию вручную. Продебажил бы (залогировал результаты параметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)"). Исходники-то есть наверняка.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523503
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Мысль имеет место быть. НО! На моем компе все работает нормально и такая ситуация случается крайне редко, а следовательно сложно поймать момент для трасеровки.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523519
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A. На моем компе все работает нормально и такая ситуация случается крайне редкоЗначит таки иногда случается? :)

В чем проблема? Напиши тест - кусочек твоей программы - после проверки выход. И из другой программы запусти этот тест 100000 раз. Можешь до ExitCode=1, чтоб тест прекратить в случае 1-й же ошибки.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523520
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.,

Timer1 как-то связан с events ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523528
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Он наверно в обработчике таймера принимает решение, что эвент не пришел и программу надо закрывать.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523710
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockВ чем проблема? Напиши тест - кусочек твоей программы - после проверки выход. И из другой программы запусти этот тест 100000 раз. Можешь до ExitCode=1, чтоб тест прекратить в случае 1-й же ошибки.

Я делал простой тест. Правда запускал его вручную. Проблема то же проскакивала.


hvladTimer1 как-то связан с events ?

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
procedure TDM.Timer1Timer(Sender: TObject);
Var
  A: string;
  AR: String;
  LogFilePath: String;
begin
  if FDADEventAlerter.Active then
    A := 'FDADEventAlerter.Active = TRUE'
  else
    A := 'FDADEventAlerter.Active = FALSE';

  if FDADEventAlerter.Options.AutoRegister then
    AR := 'FDADEventAlerter.Options.AutoRegister = TRUE'
  else
    AR := 'FDADEventAlerter.Options.AutoRegister = FALSE';


  ShowError('Не включен обработчик событий. Необходимо перезапустить программу!'+CRLF+
            A+CRLF+
            AR+CRLF+
            FDADEventAlerter.Names.Text);

  LogFilePath := ExtractFilePath(ParamStr(0))+'EventError.log';
  SaveToFile(LogFilePath, FormatDateTime('dd-mm-yyyy hh:mm:ss - Не включен обработчик событий [' + WTCRMUSERNAME + '] - ['+WTCRMSTATIONNAME+'] ', Now));

  EventAlertFunction;


 { FDDB.Close;
  FDDB.Open;

  if FDADEventAlerter.Active then
    FDADEventAlerter.Active := False
  else
    FDADEventAlerter.Active := True;

  EventAlertFunction;}
end;



Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
function TDM.EventAlertFunction: boolean;
var
  tmp: String;
begin
  if not DSet_UnitTest.Active then
    DSet_UnitTest.Open;

  UnitTestWriteTransaction.StartTransaction;
  try
    Timer1.Enabled := True;

    tmp := 'DSet_UnitTest.Append';
    DSet_UnitTest.Append;
    tmp := 'DSet_UnitTest.Post';

    DSet_UnitTest.Post;

    tmp := 'UnitTestWrite.Commit';

    UnitTestWriteTransaction.Commit;
  except
    on E:Exception do
    begin
      ShowMessage(Format('Ошибка добавления [%s]',[tmp])+#10#13+E.Message);
      UnitTestWriteTransaction.Rollback;
      DSet_UnitTest.Cancel;
    end;
  end;
end;
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 1 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Периодически не срабатывает обработчик события
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]