请问如何从 SQL Server Service Broker 中提取消息?我正在使用 nservicebus。
我的 SQL Server Service Broker 队列中有消息,但我不确定如何处理它们。
非常感谢,
请问如何从 SQL Server Service Broker 中提取消息?我正在使用 nservicebus。
我的 SQL Server Service Broker 队列中有消息,但我不确定如何处理它们。
非常感谢,
从 Service Broker 队列中提取消息的唯一方法是RECEIVE
语句。Service Broker 具有可以触发运行 RECEIVE 语句的代码的Activation 。
此代码将为您提供帮助。DECLARE @messageType SYSNAME DECLARE @conversationHandle UNIQUEIDENTIFIER DECLARE @Handle UNIQUEIDENTIFIER DECLARE @MessageBody Nvarchar(max)
DECLARE @conversation_group_id UNIQUEIDENTIFIER ;
WAITFOR(
GET CONVERSATION GROUP @conversation_group_id
FROM [UpdateReceiveQueue]
);
WAITFOR (
RECEIVE TOP(1)
@messageType=message_type_name,
@MessageBody=message_body,
@conversationHandle=conversation_handle
FROM [UpdateReceiveQueue] where conversation_group_id = @conversation_group_id
),timeout 2000;
print @MessageBody
请使用此链接获取更多信息。
我不确定,但我认为这些链接会对您有所帮助:
http://blog.sqlauthority.com/2009/09/21/sql-server-intorduction-to-service-broker-and-sample-script/
NServiceBus 不支持 SSSB 作为传输。NServiceBus SQL Server 传输使用表作为带有轮询的队列。
我基于 IAdvancedSatellite 创建了自己的 SSSB 处理。但是,SSSB 似乎不太可靠,我们停止使用它。原因是:
因此,如果您必须使用 SQL Server,我宁愿推荐使用标准 SQL Server 传输。但是您应该记住,它每秒都在轮询您的数据库。