sca*_*cci 3 t-sql service-broker sql-server-2008
即使我指定了接收顶部(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
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?
谢谢,
乙
我的猜测是每条消息属于不同的对话(因此默认情况下属于不同的对话组).如果是这种情况,那么这是预期的行为.
RECEIVE语句返回的所有消息都属于同一个会话组
如果您希望一次接收多封邮件,请在单个会话中发送多封邮件,或将多个会话分组到接收端的单个会话组中.
| 归档时间: |
|
| 查看次数: |
3636 次 |
| 最近记录: |