|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Добрый день. Есть 2 разных сервера,оба на линуксе Необходимо настроить между ними обмен сообщениями путем брокера. Оба сервера Developer's edition Сделал по статье https://www.sql.ru/forum/1284421-1/kak-obnaruzhit-oshibku-pri-rabote-service-broker В итоге посылаю в очередь Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
Но на другом сервере не могу извлечь.. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
Подскажите,кто может..в чем ошибка?Почему я не вижу отправленного сообщения? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 18:45 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, Вы проверяли содержимое sys.transmission_queue на обоих серверах? Ну и конечно sys.conversation_endpoints, чтоб 2 раза не вставать. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 20:37 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Ennor Tiegael Максим Александровитч, Вы проверяли содержимое sys.transmission_queue на обоих серверах? Ну и конечно sys.conversation_endpoints, чтоб 2 раза не вставать. Хм..пусто ... |
|||
:
Нравится:
Не нравится:
|
|||
12.04.2020, 20:58 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, добрый день, я в том топике описывал шаги для первичной диагностики. выполнили их? если не видете сообщений в очереди то проверьте а) sys.databases на наличие is_broker_enabled б) на сервере источнике sys.transmission_queue в) саму очередь отправки на наличие сообщений в каком либо из шагов будет информация о ошибке. еще sys.dm_broker_connections на установление вероятной ошибки транспорта ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 03:28 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч Ennor Tiegael Максим Александровитч, Вы проверяли содержимое sys.transmission_queue на обоих серверах? Ну и конечно sys.conversation_endpoints, чтоб 2 раза не вставать. Хм..пусто ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 05:26 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Ennor Tiegael Максим Александровитч пропущено... Хм..пусто Я скажу,более,я только что создал эти БД.. Смотрю,разумеется в контексте нужной и конечно я админ.. Есть ли еще какие-то решения на эту тему? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 07:54 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
felix_ff Максим Александровитч, добрый день, я в том топике описывал шаги для первичной диагностики. выполнили их? если не видете сообщений в очереди то проверьте а) sys.databases на наличие is_broker_enabled б) на сервере источнике sys.transmission_queue в) саму очередь отправки на наличие сообщений в каком либо из шагов будет информация о ошибке. еще sys.dm_broker_connections на установление вероятной ошибки транспорта а) sys.databases на наличие is_broker_enabled - да,включен б)В очереди передачи есть строки,есть to_service_name,но нет поля to_broker_instance пустые. Message_body заполнено. Тут select * from sys.conversation_endpoints Статус Do На что обратить внимание? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 09:00 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Упс... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 10:09 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч Тут select * from sys.conversation_endpoints Статус Do ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 10:19 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Ennor Tiegael Максим Александровитч Тут select * from sys.conversation_endpoints Статус Do Так..да,вижу что делал END CONVERSATION @h; ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 10:37 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч Ennor Tiegael пропущено... Уже лучше, однако:пропущено... Я правильно понимаю, что вы отправляете сообщение в диалог и тут же делаете ему END CONVERSATION? Не делайте так, никогда. Если вы хотите закрывать диалоги, то сей процесс должен инициироваться получателем, только после того, как тот получил все, что хотел. После этого инициатор получает на своей стороне системное сообщение EndDialog и закрывает диалог у себя. Так..да,вижу что делал END CONVERSATION @h; так перешел в стадию CO state_desc = conversion Но на получаетеле,все равно нет ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 10:39 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Ennor Tiegael, Код: sql 1.
Не совсем верно, если передача предполагается в одностороннем порядке, то нарушений логики или требований документации в этом нет. Передающий сторона выполняет два действия. Первое - отправляет "полезное" сообщение, второе, при закрытии диалога, автоматически отправляет системное сообщение [ http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog%5D]http://schemas.microsoft.com/SQL/ServiceBroker/EndDialog] и закрывает диалог со своей стороны. Принимающая сторона должна обработать оба типа сообщения и, при получении сообщения с типом EndDialog закрыть диалог на своей стороне. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:18 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, Копайте sys.transmission_queue на обоих концах диалога, и также загляните в логи серверов. Не уверен насчет последних версий, но раньше ошибки транспортного уровня протоколировались там. А, ну и вам уже советовали sys.dm_broker_connections ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:19 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Владислав Колосов Не совсем верно, если передача предполагается в одностороннем порядке, то нарушений логики или требований документации в этом нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:24 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Владислав Колосов, Я знаю, что обычно односторонняя отправка работает нормально, но в ранних версиях, на 2005 в частности, это иногда приводило к проблемам. Каким именно, сейчас боюсь уже не вспомню, за давностью лет. ЗЫ Вот и дядюшка Римус тоже не рекомендует :авторThe fire-and-forget message exchange pattern is all too compelling, but it is riddled with problems. Ending the conversation from the target side is a much better approach. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:28 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Все здорово,у вас дискуссия. Так мне-то куда копать? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:46 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, В профайлере есть категория событий "Service Broker". Настройте трассу и мониторьте происходящее. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 11:57 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Также имеется консольный вариант монитора за процессами брокера и средство диагностики. Курите мануалы. Может на линуксе это вообще не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 12:08 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Владислав Колосов Также имеется консольный вариант монитора за процессами брокера и средство диагностики. Курите мануалы. Может на линуксе это вообще не работает. А как понять что не работает на линуксе-то? Я положил в канал,вижу что ждет обработки. А есть метод реализации не на сертификате? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 12:20 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, у MS было где-то написано, что не работает на Линуксе. На странице скачивания, что ли. Не припомню, чтобы были ограничения на межсерверный брокер, но это не достоверно. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 12:25 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Владислав Колосов Максим Александровитч, у MS было где-то написано, что не работает на Линуксе. На странице скачивания, что ли. Не припомню, чтобы были ограничения на межсерверный брокер, но это не достоверно. Речь про Express версию.. И то он может работать как приемник У меня Developers edition ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 12:36 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, линуксовой версии под рукой нет, поэтому со стопроцентной гарантией утверждать не могу. вы когда открыли диалог и отправили сообщение получателю покажите: Код: sql 1. 2.
Код: sql 1. 2.
Код: sql 1. 2. 3.
Код: sql 1. 2. 3.
add: Код: sql 1. 2.
так не делайте. по крайней мере сразу пока не оттестировали все возможные вариации отправки и обработки ошибок. это плохая практика, вы потеряете сообщение об ошибке со стороны таргета если оно будет. адд2: а еще забыл: Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 17:37 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
felix_ff Максим Александровитч, линуксовой версии под рукой нет, поэтому со стопроцентной гарантией утверждать не могу. вы когда открыли диалог и отправили сообщение получателю покажите: Код: sql 1. 2. 3.
Код: sql 1. 2. 3.
Код: sql 1. 2. 3. 4.
Код: sql 1. 2. 3. 4.
add: Код: sql 1. 2. 3. 4.
так не делайте. по крайней мере сразу пока не оттестировали все возможные вариации отправки и обработки ошибок. это плохая практика, вы потеряете сообщение об ошибке со стороны таргета если оно будет. адд2: а еще забыл: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 17:46 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
Максим Александровитч, Код: sql 1. 2. 3.
Код: sql 1. 2. 3.
телнет проходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 17:52 |
|
Service Broker для репликации
|
|||
---|---|---|---|
#18+
felix_ff Максим Александровитч, линуксовой версии под рукой нет, поэтому со стопроцентной гарантией утверждать не могу. вы когда открыли диалог и отправили сообщение получателю покажите: --на сервере источнике select * from sys.dm_broker_connections Там табла большая..что конкретное может выложить? --на сервере получателе select * from sys.dm_broker_connections Там табла большая..что конкретное может выложить? --на сервере источнике: use [source_db_name] --заменить на имя своей базы источника select * from sys.transmission_queue; Там табла большая..что конкретное может выложить? конкретно у вас есть conversation_handle сохраненный в переменной @h при открытии диалога. найдите по нему в sys.transmission_queue источника сообщение и покажите его текст Код: sql 1.
в dm_broker_connections нас интересует несколько последних открытых соединений их статус: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2020, 17:56 |
|
|
start [/forum/topic.php?fid=46&msg=39946573&tid=1686135]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 177ms |
0 / 0 |