|
|
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Добрый день. Перевод с XE6 на DX10.2 Две разные виртуалки, на одной XE6 на другой DX10.2, одна и та же база на MSSQL2008R2. На XE6 уведомления идут на DX10.2 нет(( Уже голову сломал. Сам код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. Самое интересное из очереди сообщения таки уходят т.к. компонента их забирает, но "OnAlert" событие не срабатывает. Люди помогите... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2018, 16:28 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Разобрался... дело оказалось в том что нужно правильно поддерживать "Query Notification Messages" в MSSQL. Начиная с XE7 ситуация поменялась. В XE6 если формат удовлетворяет "Query Notification Messages", то тело сообщения, которое закрыто в <qn:Message>, вычленяется и передаётся слушателю, если формат не соответствует, то передавалось целиком, а вот начиная с XE7 и выше, если формат не верный то сообщение игнорируется компонентой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 06:59 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSсообщение игнорируется компонентой.Без всяких ошибок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 17:27 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_, а куда оно его отправит, это ошибко, если Event Alerter в отдельном невизуальном потоке живет? на сухожую тему недавно был срач между Владом Хорсуном (Firebird) и автором AnyDAC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 18:50 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Ariochа куда оно его отправит, это ошибкоНапример, куда-нибудь в OnError. Сообщения же он умудряется доставлять целевому потоку? Даже банальная конструкция Код: pascal 1. 2. 3. 4. уже предупредит разработчика в IDE, что что-то пошло не так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.02.2018, 19:53 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, покажи что и как делал, что: 1) "... если формат не верный то сообщение игнорируется компонентой" 2) "дело оказалось в том что нужно правильно поддерживать "Query Notification Messages" в MSSQL." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 09:06 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievИгорь_UUS, покажи что и как делал, что: 1) "... если формат не верный то сообщение игнорируется компонентой" 2) "дело оказалось в том что нужно правильно поддерживать "Query Notification Messages" в MSSQL." Добрый день Дмитрий. Если в очередь закинуть сообщение, например "bla-bla-bla and bla-bla-bla", то начиная с XE7 просто будет проигнорировано компонентой, безо всяких уведомлений (наверное это больше всех ставило в ступор!). Если сообщение будет отправлено согласно " https://technet.microsoft.com/en-us/library/ms189308(v=sql.105).aspx", то всё ок. Как нашёл?! Пришлось "ковырять" исходники, в юните FireDAC.Phys.MSSQL, функция "function TFDPhysMSSQLEventAlerter.ProcessNotifications: Boolean;" проблема в этом куске: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. А именно, где происходит потеря сообщения, которое не удовлетворяет нотифакции майкрасофт: Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:19 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, Я думаю нужно соблюдать формат, но и основной поток нужно как то проинформировать, что формат не верный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:21 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Это понятно ... Меня интересовали два примера кода отсылки сообщений: 1) Когда сообщение не доходит 2) Когда сообщение доходит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:23 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, В FireDAC есть ещё огромный "пробел"))) (по крайне мере он присутствует в XE6) Связан он с использованием TVP переменных в хранимых процедурах. Если начинаешь использовать более одной такой переменной в хранику приходит заполненная только одна. Вы тогда написали что проблема в MSSQL (или в его драйвере) напомню топик: http://www.sql.ru/forum/1127442/firedac-storedproc-ispolzovanie-peremennyh-tablichnogo-tipa-vozmozhno-bag-firedac?hl=igor888 Скажите, изменилось ли что-нибудь в этом плане? я сейчас использую DX10.2. и есть врой момент, TVP переменный вообще не работают с драйвером "неатив-клиент 11-й", только с 10-ым. Сейчас имеется поддержка 11-го драйвера? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:32 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievЭто понятно ... Меня интересовали два примера кода отсылки сообщений: 1) Когда сообщение не доходит 2) Когда сообщение доходит Не совсем понял вопроса, Вам скрипт нужен на TSQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 18:37 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSНе совсем понял вопроса, Вам скрипт нужен на TSQL? На чем угодно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.02.2018, 20:48 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievИгорь_UUSНе совсем понял вопроса, Вам скрипт нужен на TSQL? На чем угодно. Дмитрий здравствуйте. Вот так будет работать: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Вот так сообщение проигнорируется: Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 08:21 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Dmitry Arefiev, Дмитрий скажите как обстоят дела с TVP на DX10.2? (вопросы задал выше) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 08:27 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Игорь_UUS, Я MSSQL в глаза не видел, но в документации сказано These contracts must allow the message type to be sent from this side of the conversation. For example, the target services of the conversations may only send messages specified in the contract as SENT BY TARGET or SENT BY ANY. If this clause is omitted, the message is of the message type DEFAULT.Может нужно не указывать тип для текстовых сообщений? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 11:36 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Игорь_UUS, Я MSSQL в глаза не видел, но в документации сказано These contracts must allow the message type to be sent from this side of the conversation. For example, the target services of the conversations may only send messages specified in the contract as SENT BY TARGET or SENT BY ANY. If this clause is omitted, the message is of the message type DEFAULT.Может нужно не указывать тип для текстовых сообщений? Вы это про что? При чём тут "тип для текстовых сообщений", и где его нужно не указывать))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 13:01 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Я про это Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 14:39 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Я про это Код: sql 1. 2. 3. 4. Бррр, я же написал, по какой причине нотифакция не работает... причём тут "тип для текстовых сообщений"? На уровне MSSQL всё ок, компонента забирает сообщения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 15:25 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
Игорь_UUSя же написал, по какой причине нотифакция не работает.Не потому ли, что Вы декларируете отсылку в одном формате (MESSAGE TYPE [DEFAULT]), а посылали в другом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.02.2018, 15:54 |
|
||
|
Delphi 10.2: TFDEventAlerter не работает с MSSQL 2008R2
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_Игорь_UUSя же написал, по какой причине нотифакция не работает.Не потому ли, что Вы декларируете отсылку в одном формате (MESSAGE TYPE [DEFAULT]), а посылали в другом? Вы писали ранее "Я MSSQL в глаза не видел", я думаю дальнейшее обсуждение про то как работает ServiceBrocker и что есть "SEND ON CONVERSATION" является бесперспективным! Вы говорите о том, о чём не имеете понятия как оно работает и устроено! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.02.2018, 10:52 |
|
||
|
|

start [/forum/search_topic.php?author=Ula_1&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 659ms |
| total: | 802ms |

| 0 / 0 |
