|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Всем доброго времени суток! Столкнулся со проблемой, что ПЕРИОДИЧЕСКИ не срабатывает обработчик ошибок. Есть ПО установленное на сервере. Параметры сервера: 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 (раскидывали прогу по сетевым компам проблема не исчезает). Пытался менять порт, но все равно проблема остается. Может кто-то уже сталкивался с такой ситуацией? Что порекомендуете? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 14:02 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Что порекомендуете? Не использовать события если не понимаете как они работают и не умеете программировать непосредственно на ISC API. Все дельфийские обёртки, что я встречал, вызывают только недоумение своей кривизной (которая неизбежна в тщетных попытках сделать их универсальными). Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 14:24 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Что порекомендуете?1. 100500 раз перепроверить свой код. 2. Перепроверить код "того парня" - FireDac в данном случае. 3. Сделать воспроизводимый пример дя трекера, если ошибка не нашлась на предыдущих шагах. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 14:34 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvladFish.K.A.Что порекомендуете?1. 100500 раз перепроверить свой код. 2. Перепроверить код "того парня" - FireDac в данном случае. 3. Сделать воспроизводимый пример дя трекера, если ошибка не нашлась на предыдущих шагах. 0. Выключить антивирусы, брандмауэры, фаерволы etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:17 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, проекти переписывался FibPlus -> AnyDac -> FireDac и постоянно возникали эти проблемы. Причем у себя я эту проблему словить не могу. Выключить антивирусы, брандмауэры, фаерволы - выключены, настроены. Порты открыты. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:20 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
А какую-нибудь закономерность не-срабатывания заметили? P.S. Клиентское ПО на том же сервере, что и FB, правильно? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:25 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Вы правы. Я не умею программировать непосредственно на ISC API....Есть какие-то примеры. Что почитать? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:25 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, Вообще закономерности не увидел. Есть клиент у которого стоит на серваке, есть клиенты у которые и так и так. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:27 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A., можно обратить внимание на длительность подключения. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:30 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Таки явно прописать директиву RemoteAuxPort в конфиге Firebird на сервере и в файрволах этот же порт открыть ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 15:59 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Проблемы с дополнительным подключением могут вызвать тотальную неработу событий. А у аффтара - теряются некоторые из них. Это вызывается проблемами синхронизации потоков в приложении. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 16:07 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Что порекомендуете? 1. Определиться, что значит "Не срабатывают". Клиент запущен всегда и получает 1-е и 3-е событие, а 2-е не получает? Может, он был закрыт или отсоединен от базы в этот момент? Или события в этот момент не были зарегистрированы? В 1-ю очередь необходимо железно установить, что события таки пропускаются в идеальном состоянии клиента. 2. Завязываться на то, что событие будет точно получено и обработано в любом случае нельзя (клиент может начать закрываться в момент, когда сервер ему его шлет - один из примеров). Необходимо строить логику таким образом, чтобы получение события только помогало, но не было обязательным для верной работы логики программы. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 17:21 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.hvlad, проекти переписывался FibPlus -> AnyDac -> FireDac и постоянно возникали эти проблемы. Причем у себя я эту проблему словить не могу.А откуда уверенность, что проблема вообще есть ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 18:31 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, При запуске программы я делаю проверку. Добавляю строку в таблицу и получаю соответствующее событие. Вот и получается, что у меня может N раз нормально открыться, а потом M без получения события. Если ПО открылось нормально и проверка на получения события прошла нормально, то потом в запущенном экземпляре ПО проблем не возникает. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 20:09 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRockНеобходимо строить логику таким образом, чтобы получение события только помогало, но не было обязательным для верной работы логики программы. Логика следующая. Есть ПО1 и ПО2. ПО1 сохраняет определенную информацию в базу, после commit ПО2 должна получить эту информацию. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 20:15 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A., всё что можно сказать на данный момент - ошибка в 17-ой строке, увы. Значимой информации нет. Есть только стук в подвале. Нужно или воспроизводить, или искать ошибку у себя. PS Что в обработчике события ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 20:41 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, сорри. Не совсем понял что надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 20:53 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.hvlad, сорри. Не совсем понял что надо?Я имел в виду - что написано в обработчике события ? Которое наверняка есть в FDADEventAlerter. Хоть тут Delphi никто и не знает - показывай, вдруг что увидим. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 21:02 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, Если Вы имеете ввиду событие компонента onAlert, то там вообще все просто: Код: pascal 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 21:08 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Если ПО открылось нормально и проверка на получения события прошла нормально, то потом в запущенном экземпляре ПО проблем не возникает. Необходимо убедиться, что регистрация событий всегда проходит, и без ошибок. Я не знаю, как там в FDADEventAlerter, но скорее всего там есть что-то типа AutoRegister, так вот я бы его отключил и вызвал регистрацию вручную. Продебажил бы (залогировал результаты параметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)"). Исходники-то есть наверняка. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 21:40 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRock, Мысль имеет место быть. НО! На моем компе все работает нормально и такая ситуация случается крайне редко, а следовательно сложно поймать момент для трасеровки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 21:44 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A. На моем компе все работает нормально и такая ситуация случается крайне редкоЗначит таки иногда случается? :) В чем проблема? Напиши тест - кусочек твоей программы - после проверки выход. И из другой программы запусти этот тест 100000 раз. Можешь до ExitCode=1, чтоб тест прекратить в случае 1-й же ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 22:32 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A., Timer1 как-то связан с events ? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 22:36 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, Он наверно в обработчике таймера принимает решение, что эвент не пришел и программу надо закрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2017, 23:09 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
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.
Код: 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 13:23 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A., Когда вызывается EventAlertFunction ? Зачем она вызывается из Timer1Timer ? Какое время срабатывания у таймера ? Зачем в onAlert проверяется AEventName ? Бывают ли там значения, отличные от ожидаемого ? Какие ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 13:34 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Я делал простой тест. Правда запускал его вручную. Проблема то же проскакивала. Ну вот. Значит возвращаемся к пункту YuRockНеобходимо убедиться, что регистрация событий всегда проходит, и без ошибок. Я не знаю, как там в FDADEventAlerter, но скорее всего там есть что-то типа AutoRegister, так вот я бы его отключил и вызвал регистрацию вручную. Продебажил бы (залогировал результаты параметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block)"). И тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел. Кроме этого, есть еще момент. Нужно быть уверенным, что эвент должен прийти. Так, на всякий. Я бы добавил переменную EventReceived и сделал так: Код: pascal 1. 2. 3. 4. 5. 6.
И изменил бы события подобным образом: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 13:42 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRock, Таймер настроен на выдачу ошибки каждые 10 секунд пока его не отключат. Это сделано что бы люди не могли пользоваться ПО (конечно можно terminate сделать, но пока не хочу). От того что я напишу в таймер события приходить не начнут к сожалению ( ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 14:59 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, У меня зарегистрировано 7 событий поэтому и стоит проверка на наименование события ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 15:00 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.У меня зарегистрировано 7 событий поэтому и стоит проверка на наименование событияЭто вообще никак не отвечает на мой вопрос. И на остальные тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 15:20 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Если Вы имеете ввиду событие компонента onAlert, то там вообще все просто А теперь, внимание, вопрос: в контексте какого потока выполняется это событие? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 15:57 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Таймер настроен на выдачу ошибки каждые 10 секунд пока его не отключат. Это сделано что бы люди не могли пользоваться ПО (конечно можно terminate сделать, но пока не хочу). От того что я напишу в таймер события приходить не начнут к сожалению ( Я вел речь о тестовой программе, которая необходима для нахождения причины ошибки. Если "не будут" - это в данном случае отлично. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 16:10 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovА теперь, внимание, вопрос: в контексте какого потока выполняется это событие? Точно не знаю, но подозреваю что через Synchronize в главном потоке, как и в IBX. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 16:11 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRockподозреваю что через Synchronize в главном потоке, как и в IBX. Это бы сделало алертер полностью неработоспособным в консольных приложениях. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 16:23 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovЭто бы сделало алертер полностью неработоспособным в консольных приложениях. В IBX так и есть. И не только в консольных - в любых, где Application.Run не был вызван до получения событий. Да и вообще он не работоспособен без допилок) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2017, 16:49 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad Когда вызывается EventAlertFunction ? Зачем она вызывается из Timer1Timer ? Какое время срабатывания у таймера ? Зачем в onAlert проверяется AEventName ? Бывают ли там значения, отличные от ожидаемого ? Какие ? 1) EventAlertFunction - вызывается на create DataModule формы (TDM.DataModuleCreate(Sender: TObject);) 2) Попытка еще раз сохранить запись в базе (теоретически ее можно от туда убрать). 3) Таймер срабатывает каждые 5с 4) Проверка осуществляется потому что у меня в зарегистрированы 7 различных событий; 5) Не проверял ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 10:42 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRockИ тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел. Подскажите, а где смотреть этот лог? Или как его вести? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 10:46 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.Попытка еще раз сохранить запись в базе в смысле??? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 10:53 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.YuRockИ тогда нужно посмотреть, что при 'Не включен обработчик событий' было в логе регистрации эвентов. И чем это "что" отличается от того, что там при ситуации, когда эвент пришел. Подскажите, а где смотреть этот лог? Или как его вести? Там, куда ты его сохранишь. Как вести? Сделать функцию WriteLog и передавать в нее текст, который надо залогировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 11:40 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRock, что-то я не понимаю что надо сохранять в лог. Если у меня обработчик событий не ловит event, то выскакивает ошибка. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 12:42 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.что-то я не понимаю что надо сохранять в лог. YuRockпараметры и результаты функции регистрации, в моем древнем IBX она "выглядит" как "Tsib_event_block(isc_event_block) Это для начала. Чтобы убедиться, что с регистрацией событий нет проблем. А иначе дальше смотреть нет смысла. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 13:23 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
YuRock, Провел тест. Каждый раз когда не срабатывает обработчик появляется ошибка ERROR: Unrecognized events block ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 19:10 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Fish.K.A.YuRock, Провел тест. Каждый раз когда не срабатывает обработчик появляется ошибка ERROR: Unrecognized events blockПрекрасно. В каком месте (я про стек вызовов, достаточно верхний десяток фреймов) ? Что при этом передаётся в isc_que_events ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 20:28 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Кто ориентируется в современных потрохах Delphi, поправьте меня Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Т.е., если Parent.OnError не назначен, то привет игнор ошибкам. Parent - это TIBEvents, своего обработчика для FOnError у него нет, т.е. вся надежда на юзера. Но наш ТС пользуется не TIBEvents, а монстром TFDPhysIBEventAlerter (насколько я понял), который использует TIBEvents и, мало того, что не назначает ему обработчик OnError, но и юзеру такой возможности не даёт. Всё правильно ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2017, 20:40 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvladмонстром TFDPhysIBEventAlerter (насколько я понял), который использует TIBEvents Это надо спрашивать в http://www.sql.ru/forum/1008012-32/firedac Но я как-то сомневаюсь, что AnyDAC/FireDAC будет зависеть от IBX ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:31 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Ariochhvladмонстром TFDPhysIBEventAlerter (насколько я понял), который использует TIBEvents Это надо спрашивать в http://www.sql.ru/forum/1008012-32/firedac Я смотрел исходники от Delphi 10.2, но мог что-то упустить, т.к. глубоко не вникал. AriochНо я как-то сомневаюсь, что AnyDAC/FireDAC будет зависеть от IBXUSUS (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:39 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvladТ.е., если Parent.OnError не назначен, то привет игнор ошибкам. Учитывая, что ошибка прилетает не в основном потоке - то, вполне вероятно, это наилучший компромисс.... Да и пользователю надо учитывать, что OnError будет вызываться отнюдь не из Main VCL Thread ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 13:51 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
Arioch, нет и не может быть никакого оправдания сокрытию ошибок от пользователя. И хватит флудить, здесь речь не об этом. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.09.2017, 14:08 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvladВсё правильно ?Как выяснилось - не всё. К моему удивлению, TIBEvents (и TIBEventThread) - это классы не IBX, а FireDAC, соответственно работают они иначе. Возвращаясь к теме - Fish.K.A., ты куда пропал ? Хотелось бы всё же получить ответы на вопросы из 20817269 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 16:31 |
|
Периодически не срабатывает обработчик события
|
|||
---|---|---|---|
#18+
hvlad, Я тут. Просто не всегда есть время отписываться. Я сейчас просто прогнал 10000 запусков тестовой программы. Причем перед прогоном переустановил еще раз FB и соответственно dll. У меня на 10000 запусках все гуд. Сейчас ищу время что бы прогнать у клиентов и посмотреть как у них все это прокатит. По мере поступления информации буду отписываться... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.09.2017, 16:47 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561406]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
55ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 197ms |
0 / 0 |