|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Пытаюсь по шагам воспроизвести пример из MSDN по взаимодействию компонентов service broker на разных серверах: https://technet.microsoft.com/ru-ru/library/bb839483(v=sql.105).aspx База [InstTargetDB] расположена на экземпляре с установленным 2014SP2CU8, [InstInitiatorDB] - на экземпляре 2016SP1CU7 (обе версии - стандарт) После воспроизведения всех примеров без ошибок, на шаге Занятие 6. Получение ответа и завершение диалога https://technet.microsoft.com/ru-ru/library/bb839494(v=sql.105).aspx - получаю: (0 rows affected) Msg 8418, Level 16, State 1, Line 16 The conversation handle is missing. Specify a conversation handle. (1 row affected) Сервера - в одном домене (физически две разные виртуалки на одном хосте). Подскажите, как вообще искать неисправности в этом случае? Где у этого "розетка", в которую нужно заглянуть в первую очередь? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 11:10 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, если получили такую ошибку, то у вас оператор receive вернул null ссылку на диалог. там пример написан без проверки: что есть плохо Код: sql 1. 2. 3. 4. 5. 6.
вы ждете секунду получение сообщения из очереди и потом пытаетесь закрыть диалог, но может получиться так что сообщений в очереди не будет, receive вернет null в @RecvReplyDlgHandle и получите данную ошибку пишите так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
в первую очередь смотрите статусы в sys.conversation_endpoints, если там ничего подозрительного смотрите наличие сообщений в очередях получателя/отправителя, если и там нет признаков происков макаронного монстра идите в sys.transmission_queue ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2018, 12:49 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
felix_ffв первую очередь смотрите статусы в sys.conversation_endpoints, если там ничего подозрительного смотрите наличие сообщений в очередях получателя/отправителя, если и там нет признаков происков макаронного монстра идите в sys.transmission_queue Подозрительное, думаю, есть (см). Вот только что с этим делать? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:39 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Вот так, думаю, будет нагляднее: ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:45 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 11:45 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, uaggster, если честно от ваших развернутых столбцов глаза режет, сделали бы просто скрин запроса в ssms с результатом. судя по вашим данным у вас два открытых исходящих диалога, но если оно с состоянии conversing, то это значит что у вас отработало открытие диалога со стороны инициатора и отправка сообщения в принимающую сторону, но до сих пор целевая служба ничего не ответила в ответ. вот оно у вас и висит в ожидании. это если "беглым" вгзлядом. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 12:20 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
в sys.transmission_queue у вас что сейчас? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 12:22 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
felix_ffв sys.transmission_queue у вас что сейчас? А вот то, что на втором скрине. Я транспонировал потому что иначе картинка очень мелкая. На целевом сервере - в очередях пусто. Т.е., сообщение туда, видимо, не доставлено. Но по какой причине? Где затык то? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 12:54 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, а так второй скрин это содержимое transmission_queue? ну так прочитайте что там в message_body Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:22 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
felix_ffuaggster, а так второй скрин это содержимое transmission_queue? ну так прочитайте что там в message_body Код: sql 1.
Ээээ... там <test>test</test> <test>test</test> Ровно то, что я пытаюсь передать на второй сервер. Но на второй сервер - оно не передается! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:31 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, проверяйте включен ли брокер в базе msdb на сервере источнике, включен ли брокер на базе сервера получателя, не отключена ли очередь целевой службы ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:38 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
а еще вам необходимо проверить маршруты, и привязки удаленных служб ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:40 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
а и самое главное: а конечная точка то включена вообще? :D покажите результат Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:44 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
felix_ffuaggster, проверяйте включен ли брокер в базе msdb на сервере источнике Да, включен felix_ff, включен ли брокер на базе сервера получателя, Да, включен felix_ff не отключена ли очередь целевой службы А как это проверить? Я пытаюсь воспроизвести пример: На первом сервере: Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126.
На втором сервере: Код: 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. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127.
Это уже второй пример. Отсюда: http://www.sqlservercentral.com/articles/Service Broker/2797/ Аналогичный из учебника MSDN - тоже не работает. Пример с пересылкой сообщений между базами на одном сервере - воспроизводится без проблем. Как обнаружить проблему? Где у него логгируется сообщения об ошибках? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:49 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
На сервере А, databaseA: ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:53 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
На сервере B, databaseB: ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 14:54 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
не понятно , есть результат: Код: sql 1. 2.
Там будет статус в поле transmission_status Второе логи sql смотрели, есть ли там ошибки , права на коннект к endpoint-ам дали? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:13 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Вот что в статусе: An error occurred while receiving data: '10054(An existing connection was forcibly closed by the remote host.)'. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:32 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Из ошибок в логе только: Implied authentication manager initialization failed. Implied authentication will be disabled. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:39 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Slava_NikВторое логи sql смотрели, есть ли там ошибки , права на коннект к endpoint-ам дали? Вроде бы да, в скрипте (см. выше) есть вот что, например: GRANT CONNECT ON ENDPOINT::ServiceBrokerEndPoint To sbLogin GO ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:41 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, у вас ошибка из-за прав. на второй вопрос не ответили, права к endpoint-у дали? https://social.msdn.microsoft.com/Forums/sqlserver/en-US/e8346a87-4225-4468-a143-66682f58973c/an-error-occurred-while-receiving-data-10054an-existing-connection-was-forcibly-closed-by-the?forum=sqlservicebroker ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:42 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, безопасность транспорта значит кривая, почему у вас в одном случае шифрование RC4 а для другой точки AES? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:44 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
felix_ffuaggster, безопасность транспорта значит кривая, почему у вас в одном случае шифрование RC4 а для другой точки AES? Не знаю. Видимо, что-то где то по умолчанию. Инициирующий сервер: Microsoft SQL Server 2014 (SP2-CU8) (KB4037356) - 12.0.5557.0 (X64) Oct 3 2017 14:56:10 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor) Целевой сервер: Microsoft SQL Server 2016 (SP1-CU6) (KB4037354) - 13.0.4457.0 (X64) Nov 8 2017 17:32:23 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) А как поправить различие в шифровании? Кстати, интересно, а сейчас в статусе сообщений - ПУСТО! ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:53 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
Slava_Nikuaggster, у вас ошибка из-за прав. на второй вопрос не ответили, права к endpoint-у дали? Да говорю ж, вроде как дал: Код: sql 1. 2.
И на том, и не другом серверах. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 15:55 |
|
Как обнаружить ошибку при работе service broker?
|
|||
---|---|---|---|
#18+
uaggster, ну для начала сделайте на сервере целевой службы Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2018, 16:13 |
|
|
start [/forum/topic.php?fid=46&msg=39603100&tid=1685681]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 174ms |
0 / 0 |