Service Broker 队列激活存储过程
为什么我不能激活调用存储过程,我向队列里添加了信息,存储过程却不执行,我的存储过程批前几次没有读取队列消息,所以队列就认为这存储过程是失败的,就不激活这存储过程了。但我现在把存储过程改掉了,执行了读取队列操作,并进行数据添加操作。之后向队列添加信息,还是没能执行存储过程。
下面这代码难道有错
----------------------
ALTER QUEUE [SalesQueue] WITH ACTIVATION
(
STATUS = ON,
MAX_QUEUE_READERS = 5,
PROCEDURE_NAME = usp_RecordSaleMessage,
EXECUTE AS OWNER
);
我的存储usp_RecordSaleMessage:
BEGIN
DECLARE @conversationHandle uniqueidentifier
declare @message_body varchar(MAX)
declare @message_type_name sysname;
Begin Transaction;
RECEIVE top(1) @message_type_name=message_type_name, @conversationHandle=conversation_handle, @message_body=message_body FROM [SalesQueue]
if @message_type_name = 'RecordSale '
Begin
print @message_body
exec (@message_body)
End
Commit
end
------解决方案--------------------Service Broker
http://www.windbi.com/showtopic-331.aspx
建立分布式Service Broker应用程序
http://www.windbi.com/showtopic-352.aspx