在嵌套事务中发送和接收SQL Server Service Broker消息

时间:2011-03-15 11:05:22

标签: sql-server service-broker

我想使用SQL Server 2008 Service Broker来记录由存储过程动态创建的长时间运行(最多约30分钟)事务的进度。我有两个目标:

1)要实时记录构成交易的动态创建的语句,以便远程监控交易进度,

2)能够查看构成事务的步骤,直到可能发生故障需要回滚的程度。

我不能简单地PRINT(或RAISERROR(msg,0,0))到控制台,因为我想将进度消息记录到表中(即使存储过程回滚也保留该日志)。

但我的理解是,在发送线程提交(外部事务)之前,无法从队列接收消息。这是真的?如果是这样,我有什么选择?

1 个答案:

答案 0 :(得分:0)

确实,在提交事务之前,您无法从服务队列中读取消息。

您可以尝试其他一些方法:

  1. 使用sql clr过程将.net远程处理消息发送到接收消息的.net应用程序并记录它们。

  2. 使用sql clr过程将文本或其他日志文件写入磁盘。

  3. 其他一些方法......

  4. 此致

    AJ