Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Service Broker END CONVERSATION на стороне отправителя.  [new]
olegdev
Member

Откуда:
Сообщений: 7
Доброго времени суток!

Помогите, пожалуйста, разобраться.
Если после отправки сообщения мы сразу же закроем диалог на стороне отправителя, например:

BEGIN DIALOG CONVERSATION @ch
FROM SERVICE [InitiatorService]
TO SERVICE 'TargetService'
ON CONTRACT ...

SEND ON CONVERSATION @ch
MESSAGE TYPE ...
(@msg);

END CONVERSATION @ch;

На стороне получателя это сообщение будет получено и обработано, после чего диалог будет закрыт и на стороне получателя. Следуя логике приложения в conversation больше сообщений не предусмотрено.

Похоже, что все работает как надо, но смущает такой подход...
Могут ли появиться какие-либо подводные камни во время обработки сообщения на стороне получателя, когда отправитель инициировал закрытие диалога?
29 апр 15, 12:20    [17580635]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker END CONVERSATION на стороне отправителя.  [new]
invm
Member

Откуда: Москва
Сообщений: 9406
olegdev
Могут ли появиться какие-либо подводные камни
Могут.
How to prevent conversation endpoint leaks
29 апр 15, 12:35    [17580754]     Ответить | Цитировать Сообщить модератору
 Re: Service Broker END CONVERSATION на стороне отправителя.  [new]
olegdev
Member

Откуда:
Сообщений: 7
invm
olegdev
Могут ли появиться какие-либо подводные камни
Могут.
How to prevent conversation endpoint leaks


Большое спасибо!
Оказывается весьма распространенная ошибка и есть 2 серьезных недостатка: отсутствует обработка ошибок и реализация повторной отправки сообщения.
Теперь уж точно перепишу код с использованием активации очереди.
29 апр 15, 15:11    [17581942]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить