|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Всем привет! Осваиваю ServiceBroker для асинхронного выполнения процедуры. Использую одну очередь и один диалог, получаю хендл диалога так Код: sql 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.
Все работает на стейдже, но на проде возникла проблема - иногда запрос из sys.conversation_endpoints ничего не возвращал, хотя диалог точно есть! И создавался новый диалог. Никто не сталкивался, как лечиьт? ЗЫ Microsoft SQL Server 2017 (RTM-CU17) (KB4515579) - 14.0.3238.1 (X64) Sep 13 2019 15:49:57 Copyright (C) 2017 Microsoft Corporation Enterprise Edition: Core-based Licensing (64-bit) on Windows Server 2016 Standard 10.0 <X64> (Build 14393: ) С уважением, Князев Константин ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:38 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, Работающий диалог не обязательно всегда в CO Я проверяю так - state not in (N'DO', N'DI', N'CD', N'ER') ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 17:56 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
invm, Нет, состояние не причем, пробовал без него. Все равно пусто. Как будто запрос с ридпаст делается. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.12.2019, 23:36 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, Чудес не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:01 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
читайте state, сравнивайте явно и логируйте. получите ответ на свой вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 10:21 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
логирую Код: sql 1. 2. 3. 4. 5.
пусто ( понятно, что чудес не бывает, но вот понять не могу что не так... может что пытаюсь переиспользовать диалог в разных сессиях? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:35 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius пусто ( Как тогда определяете, что он есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:47 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, а в чем смысл экономии на диалогах? Даже если получится, вы создадите бутылочное горлышко. Я как-то экспериментировал с этим, результат неудовлетворительный. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:52 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Владислав Колосов Я как-то экспериментировал с этим, результат неудовлетворительный. На создание-удаление диалога тратятся ресурсы и немалые. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 11:55 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, Один диалог? Так делать точно не стоит, надо делать пул.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:14 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
invm Zelius пусто ( Как тогда определяете, что он есть? в SSMS выполняю скрипт и вижу, что появился новый диалог, хотя старый не исчез и в состоянии CO ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:30 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Ennor Tiegael Zelius, Один диалог? Так делать точно не стоит, надо делать пул.
хотелось избежать лишних чтений. у меня локальный диалог для асинхронного выполнения процедуры с одной очередью. PS спасибо, буду иметь ввиду. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:33 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
invm, мне не устроило то, что писатели выстраивались в очередь ожидания. Это привело к огромным заторам, куда худшим, чем затраты на создание диалога. Если запись производится быстрыми транзакциями, тогда проблем, разумеется нет особых. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:43 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
отказался от переиспользования диалога, т.к. он использовался из разный сессий и могли возникнуть ожидания завершения чужих транзакций и ошибки вследствии проблем отправки в других сессиях. пришел к выводу, что переиспользование диалога имеет смысл только в рамках одной сессии или без длительных транзакций. но ответа на вопрос как может быть пустой sys.conversation_endpoints не нашел ( ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 12:50 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, на факт, что точка подключения в момент запроса не находилась в другом состоянии. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:00 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Владислав Колосов, а какое может быть состояние, если до запроса было CO и после тоже CO (по результатам отдельного запроса в студии)? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:12 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius invm пропущено... Как-то не очень соотносится с "диалог точно есть" Как тогда определяете, что он есть? в SSMS выполняю скрипт и вижу, что появился новый диалог, хотя старый не исчез и в состоянии CO ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 13:30 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
господа-хорошие, перечитал весь пост 5 раз ничего не понял. а у меня-то почему работает без проблем? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 15:19 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
ShIgor, Может нагрузка не большая? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.12.2019, 23:29 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, а какой критерий оценки нагрузки? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 09:31 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, это нормальная нагрузка? на название не обращайте внимания, очередь одна для всех. полный размер лежит у меня на Google Drive ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 10:12 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
ShIgor, пока не пойму, как оценить кол-во сообщений прошедших через очередь, кроме доп логирования. на скриншоте чтото самописное? PS оригинальная проблема у меня была в том, что select * from sys.conversation_endpoints был пустой, хотя диалоги точно были... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 11:57 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, нет, не самописное. типа PowerBI, Таблю и т.п. а изначально вопрос можно перефразировать так - "в кошельке пусто, хотя точно знаю - деньги есть" sys.conversation_endpoints возвращает пустоту только если сами диалоги в другой базе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 13:05 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
ShIgor Zelius, нет, не самописное. типа PowerBI, Таблю и т.п. а изначально вопрос можно перефразировать так - "в кошельке пусто, хотя точно знаю - деньги есть" sys.conversation_endpoints возвращает пустоту только если сами диалоги в другой базе. Скорее как открыл кошелек, смотрю деньги лежат, закрыл, опять открыл смотрю пусто, положил еще денег, закрыл, открыл - смотрю и старые и новые лежат. Зы базу проверю, чем черт не шутит... ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 14:36 |
|
Переиспользование одного диалога для асинхронного выполнения процедур
|
|||
---|---|---|---|
#18+
Zelius, Права проверьте, в частности точно выясните, под какой именно учеткой делается тот селект, который не находит диалогов. Сервис брокер это просто гигантское минное поле в плане прав, упустить какой-нибудь неочевидный грант можно в куче мест. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2019, 18:28 |
|
|
start [/forum/topic.php?fid=46&msg=39904653&tid=1686742]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 132ms |
0 / 0 |