Service Broker END CONVERSATION на стороне отправителя.

olegdev
Дата: 29.04.2015 12:20:36
Доброго времени суток!

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

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

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

END CONVERSATION @ch;

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

Похоже, что все работает как надо, но смущает такой подход...
Могут ли появиться какие-либо подводные камни во время обработки сообщения на стороне получателя, когда отправитель инициировал закрытие диалога?
invm
Дата: 29.04.2015 12:35:52
olegdev
Могут ли появиться какие-либо подводные камни
Могут.
How to prevent conversation endpoint leaks
olegdev
Дата: 29.04.2015 15:11:06
invm
olegdev
Могут ли появиться какие-либо подводные камни
Могут.
How to prevent conversation endpoint leaks


Большое спасибо!
Оказывается весьма распространенная ошибка и есть 2 серьезных недостатка: отсутствует обработка ошибок и реализация повторной отправки сообщения.
Теперь уж точно перепишу код с использованием активации очереди.