Receive Top (25) 등을 지정하는 경우에도 한 번에 하나의 메시지 만 대기열에서 제외됩니다. 내 sproc 내부에서 내가 뭘 잘못하고 있는지 확실하지 않니? 아마 사소한 일이지만, 나는 그 문제를 보지 못한다.Service Broker는 한 번에 하나의 메시지 만 수신합니다.
SPROC :
CREATE PROCEDURE dbo.SPP_DEQUEUE_MESSAGE
AS
BEGIN
DECLARE @receiveTable TABLE(
message_type sysname,
message_body xml,
message_dialog uniqueidentifier);
BEGIN TRANSACTION;
WAITFOR
(RECEIVE TOP(25)
message_type_name,
message_body,
conversation_handle
FROM TargetQueue1DB
INTO @receiveTable
), TIMEOUT 3000;
SELECT
*
From @receiveTable;
Delete from @receiveTable;
COMMIT TRANSACTION;
END --End Sproc
내가 잘못하고있는 중이 야 어떤 생각?
감사합니다,
B
고맙습니다. Pawel 저것 좀 살펴 보겠습니다. 나는 그 부분을 보지 못했습니다 ... 그것은 아마 일어나는 일입니다. – scarpacci
이것에 대한 예제를 제공해 주시겠습니까? INSERT 트리거 테이블에서 메시지를 보내므로 모든 INSERT에 대해 별도의 대화를 만들어야합니다. 가능한 모든 메시지를 일괄 적으로 수신하고 싶습니다. 그러나 이러한 일은 발생하지 않으며 단일 그룹에서 대화를 이동하는 방법을 알지 못합니다 (BEGIN DIALOG에서 WITH RELATED_CONVERSATION_GROUP을 사용하는 경우조차도). – Mikhail