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

Когда вызывается EventAlertFunction ?
Зачем она вызывается из Timer1Timer ?
Какое время срабатывания у таймера ?

Зачем в onAlert проверяется AEventName ?
Бывают ли там значения, отличные от ожидаемого ? Какие ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523722
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Я делал простой тест. Правда запускал его вручную. Проблема то же проскакивала.
Ну вот. Значит возвращаемся к пункту

YuRockНеобходимо убедиться, что регистрация событий всегда проходит, и без ошибок. Я не знаю, как там в FDADEventAlerter, но скорее всего там есть что-то типа AutoRegister, так вот я бы его отключил и вызвал регистрацию вручную. Продебажил бы (залогировал результаты параметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)").

И тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел.

Кроме этого, есть еще момент. Нужно быть уверенным, что эвент должен прийти. Так, на всякий. Я бы добавил переменную EventReceived и сделал так:

Код: pascal
1.
2.
3.
4.
5.
6.
Timer1.Enabled := False; // Еще на форме поставить
EventReceived := False;
RegisterEvents;
Insert;
Commit;
Timer1.Enabled := True;



И изменил бы события подобным образом:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
procedure TDM.OnAlert( AEventName )
begin
  if CompareText(AEventName, 'EVENTTEST') = 0 then
  begin
    EventReceived := True;
  end;
end;

procedure TDM.Timer1Timer(Sender: TObject);
begin
  Timer1.Enabled := False;
  if EventReceived then
    Exit;

  ShowError('Не включен обработчик событий. Необходимо перезапустить программу!');
end;
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523760
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Таймер настроен на выдачу ошибки каждые 10 секунд пока его не отключат. Это сделано что бы люди не могли пользоваться ПО (конечно можно terminate сделать, но пока не хочу).

От того что я напишу в таймер события приходить не начнут к сожалению (
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523763
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

У меня зарегистрировано 7 событий поэтому и стоит проверка на наименование события
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523776
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.У меня зарегистрировано 7 событий поэтому и стоит проверка на наименование событияЭто вообще никак не отвечает на мой вопрос.
И на остальные тоже.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523800
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Если Вы имеете ввиду событие компонента onAlert, то там вообще все просто

А теперь, внимание, вопрос: в контексте какого потока выполняется это событие?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523817
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Таймер настроен на выдачу ошибки каждые 10 секунд пока его не отключат. Это сделано что бы люди не могли пользоваться ПО (конечно можно terminate сделать, но пока не хочу).

От того что я напишу в таймер события приходить не начнут к сожалению (
Я вел речь о тестовой программе, которая необходима для нахождения причины ошибки. Если "не будут" - это в данном случае отлично.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523820
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА теперь, внимание, вопрос: в контексте какого потока выполняется это событие?
Точно не знаю, но подозреваю что через Synchronize в главном потоке, как и в IBX.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523825
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockподозреваю что через Synchronize в главном потоке, как и в IBX.

Это бы сделало алертер полностью неработоспособным в консольных приложениях.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39523852
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЭто бы сделало алертер полностью неработоспособным в консольных приложениях.
В IBX так и есть. И не только в консольных - в любых, где Application.Run не был вызван до получения событий.
Да и вообще он не работоспособен без допилок)
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524688
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
Когда вызывается EventAlertFunction ?
Зачем она вызывается из Timer1Timer ?
Какое время срабатывания у таймера ?

Зачем в onAlert проверяется AEventName ?
Бывают ли там значения, отличные от ожидаемого ? Какие ?


1) EventAlertFunction - вызывается на create DataModule формы (TDM.DataModuleCreate(Sender: TObject);)
2) Попытка еще раз сохранить запись в базе (теоретически ее можно от туда убрать).
3) Таймер срабатывает каждые 5с
4) Проверка осуществляется потому что у меня в зарегистрированы 7 различных событий;
5) Не проверял
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524690
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRockИ тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел.


Подскажите, а где смотреть этот лог? Или как его вести?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524696
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.Попытка еще раз сохранить запись в базе
в смысле???
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524743
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.YuRockИ тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел.


Подскажите, а где смотреть этот лог? Или как его вести?
Там, куда ты его сохранишь.
Как вести? Сделать функцию WriteLog и передавать в нее текст, который надо залогировать.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524803
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

что-то я не понимаю что надо сохранять в лог.

Если у меня обработчик событий не ловит event, то выскакивает ошибка.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39524843
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.что-то я не понимаю что надо сохранять в лог.

YuRockпараметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)

Это для начала. Чтобы убедиться, что с регистрацией событий нет проблем. А иначе дальше смотреть нет смысла.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525113
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
YuRock,

Провел тест. Каждый раз когда не срабатывает обработчик появляется ошибка

ERROR: Unrecognized events block
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525139
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fish.K.A.YuRock,

Провел тест. Каждый раз когда не срабатывает обработчик появляется ошибка

ERROR: Unrecognized events blockПрекрасно.
В каком месте (я про стек вызовов, достаточно верхний десяток фреймов) ?
Что при этом передаётся в isc_que_events ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525145
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кто ориентируется в современных потрохах Delphi, поправьте меня

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
procedure TIBEventThread.SQueEvents;
begin
  try
    Parent.Database.Call(Parent.Database.GDSLibrary.isc_que_events(StatusVector, @Parent.Database.Handle,
      @EventID, EventBufferLen, EventBuffer, TISC_CALLBACK(@EventCallback),
      PVoid(Self)), True);
  except
    on E : Exception do
      if Assigned(Parent.OnError) then
        if E is EIBError then
          Parent.OnError(Parent, EIBError(E).IBErrorCode)
        else
          Parent.OnError(Parent, 0);
  end;
end;

Т.е., если Parent.OnError не назначен, то привет игнор ошибкам.

Parent - это TIBEvents, своего обработчика для FOnError у него нет, т.е. вся надежда на юзера.

Но наш ТС пользуется не TIBEvents, а монстром TFDPhysIBEventAlerter (насколько я понял),
который использует TIBEvents и, мало того, что не назначает ему обработчик OnError, но и
юзеру такой возможности не даёт.

Всё правильно ?
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525771
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladмонстром TFDPhysIBEventAlerter (насколько я понял),
который использует TIBEvents

Это надо спрашивать в http://www.sql.ru/forum/1008012-32/firedac

Но я как-то сомневаюсь, что AnyDAC/FireDAC будет зависеть от IBX
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525778
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochhvladмонстром TFDPhysIBEventAlerter (насколько я понял),
который использует TIBEvents

Это надо спрашивать в http://www.sql.ru/forum/1008012-32/firedac Я смотрел исходники от Delphi 10.2, но мог что-то упустить, т.к. глубоко не вникал.

AriochНо я как-то сомневаюсь, что AnyDAC/FireDAC будет зависеть от IBXUSUS (с)
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525792
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladТ.е., если Parent.OnError не назначен, то привет игнор ошибкам.

Учитывая, что ошибка прилетает не в основном потоке - то, вполне вероятно, это наилучший компромисс....
Да и пользователю надо учитывать, что OnError будет вызываться отнюдь не из Main VCL Thread
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39525813
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch,

нет и не может быть никакого оправдания сокрытию ошибок от пользователя.
И хватит флудить, здесь речь не об этом.
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39527214
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladВсё правильно ?Как выяснилось - не всё. К моему удивлению, TIBEvents (и TIBEventThread) - это классы не IBX, а FireDAC, соответственно работают они иначе.

Возвращаясь к теме - Fish.K.A., ты куда пропал ?
Хотелось бы всё же получить ответы на вопросы из 20817269
...
Рейтинг: 0 / 0
Периодически не срабатывает обработчик события
    #39527220
Fish.K.A.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad,

Я тут. Просто не всегда есть время отписываться. Я сейчас просто прогнал 10000 запусков тестовой программы. Причем перед прогоном переустановил еще раз FB и соответственно dll. У меня на 10000 запусках все гуд. Сейчас ищу время что бы прогнать у клиентов и посмотреть как у них все это прокатит. По мере поступления информации буду отписываться...
...
Рейтинг: 0 / 0
25 сообщений из 50, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Периодически не срабатывает обработчик события
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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