Я замечаю, что некоторые разговоры не закрываются, а остаются в состоянии ПРЕОБРАЗОВАНИЯ. Странно то, что очередь настроена на обработку только 1 сообщения за раз. На практике, однако, есть два разговора в состоянии ПРЕОБРАЗОВАНИЯ: один действительно выполняет какую-то работу, а другой кажется застрявшим.
Одна вещь, которую я использую, - это отдельная очередь и служба, которые отличаются от обычных реализаций брокера служб (делая его больше похожим на монолог, а не на диалог). Я запускаю активацию SP с:
RECEIVE TOP(1)
@Handle = conversation_handle,
@MsgTypeName = message_type_name
FROM [//MyQueue]
IF (@@ROWCOUNT = 0)
RETURN
ELSE IF ((@MsgTypeName is null) or (@Handle is null))
RETURN
ELSE IF (@MsgTypeName != '//MyRequest')
BEGIN
END CONVERSATION @Handle
RETURN
END