gpt4 book ai didi

tsql - Service Broker 一次只接收一条消息

转载 作者:行者123 更新时间:2023-12-01 11:57:49 27 4
gpt4 key购买 nike

即使我指定 Receive Top(25) 等,我也一次只能收到一条消息出列。不确定我在 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

知道我做错了什么吗?

谢谢,

最佳答案

我的猜测是每条消息都属于不同的对话(因此默认情况下属于不同的对话组)。如果是这种情况,那么这是预期的行为。

来自 Books Online - Receive (Transact-SQL) :

All messages that are returned by a RECEIVE statement belong the same conversation group



如果您想一次接收多条消息,请在单个 session 中发送多条消息或 group multiple conversations进入接收端的单个 session 组。

关于tsql - Service Broker 一次只接收一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4454743/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com