我想使用SQL Server 2008 Service Broker来记录由存储过程动态创建的长时间运行(最多约30分钟)事务的进度。我有两个目标:
1)要实时记录构成交易的动态创建的语句,以便远程监控交易进度,
2)能够查看构成事务的步骤,直到可能发生故障需要回滚的程度。
我不能简单地PRINT(或RAISERROR(msg,0,0))到控制台,因为我想将进度消息记录到表中(即使存储过程回滚也保留该日志)。
但我的理解是,在发送线程提交(外部事务)之前,无法从队列接收消息。这是真的?如果是这样,我有什么选择?
答案 0 :(得分:0)
确实,在提交事务之前,您无法从服务队列中读取消息。
您可以尝试其他一些方法:
使用sql clr过程将.net远程处理消息发送到接收消息的.net应用程序并记录它们。
使用sql clr过程将文本或其他日志文件写入磁盘。
其他一些方法......
此致
AJ