如何从SQL Server Service Broker中提取邮件?我正在使用nservicebus。
我的SQL Server Service Broker队列中有消息,但我不知道如何处理它们。
非常感谢,答案 0 :(得分:1)
从Service Broker队列中提取消息的唯一方法是RECEIVE
语句。 Service Broker具有Activation,可以触发运行RECEIVE语句的代码。
答案 1 :(得分:1)
此代码可以帮助您。 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
请使用此link获取更多信息。
答案 2 :(得分:0)
我不确定,但我认为这些链接会对您有所帮助:
http://blog.sqlauthority.com/2009/09/21/sql-server-intorduction-to-service-broker-and-sample-script/
答案 3 :(得分:0)
NServiceBus不支持SSSB作为传输。 NServiceBus SQL Server Transport使用表作为轮询的队列。
我基于IAdvancedSatellite创建了自己的SSSB处理。但是,SSSB似乎不太可靠,我们停止使用它。原因是:
因此,如果您必须使用SQL Server,我宁愿建议使用strandard SQL Server传输。但是你应该记住它每秒都在轮询你的数据库。