Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Периодически не срабатывает обработчик события / 25 сообщений из 50, страница 1 из 2
19.09.2017, 14:02
    #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
19.09.2017, 14:24
    #39523304
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически не срабатывает обработчик события
Fish.K.A.Что порекомендуете?

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

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

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

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

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

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

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

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

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

PS Что в обработчике события ?
...
Рейтинг: 0 / 0
19.09.2017, 20:53
    #39523485
Fish.K.A.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически не срабатывает обработчик события
hvlad, сорри. Не совсем понял что надо?
...
Рейтинг: 0 / 0
19.09.2017, 21:02
    #39523491
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически не срабатывает обработчик события
Fish.K.A.hvlad, сорри. Не совсем понял что надо?Я имел в виду - что написано в обработчике события ? Которое наверняка есть в FDADEventAlerter.
Хоть тут Delphi никто и не знает - показывай, вдруг что увидим.
...
Рейтинг: 0 / 0
19.09.2017, 21:08
    #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
19.09.2017, 21:40
    #39523498
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически не срабатывает обработчик события
Fish.K.A.Если ПО открылось нормально и проверка на получения события прошла нормально, то потом в запущенном экземпляре ПО проблем не возникает.
Необходимо убедиться, что регистрация событий всегда проходит, и без ошибок. Я не знаю, как там в FDADEventAlerter, но скорее всего там есть что-то типа AutoRegister, так вот я бы его отключил и вызвал регистрацию вручную. Продебажил бы (залогировал результаты параметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)"). Исходники-то есть наверняка.
...
Рейтинг: 0 / 0
19.09.2017, 21:44
    #39523503
Fish.K.A.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Периодически не срабатывает обработчик события
YuRock,

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

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

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

Он наверно в обработчике таймера принимает решение, что эвент не пришел и программу надо закрывать.
...
Рейтинг: 0 / 0
20.09.2017, 13:23
    #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
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Периодически не срабатывает обработчик события / 25 сообщений из 50, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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