我想使用 SQL Server 2008 Service Broker 记录由存储过程动态创建的长时间运行(最多约 30 分钟)事务的进度。我有两个目标:
1) 获取组成事务的动态创建语句的实时日志记录,以便可以远程监控事务的进度,
2) 能够审查组成事务的步骤,直至可能发生故障需要回滚。
我不能简单地将 PRINT(或 RAISERROR(msg,0,0))打印到控制台,因为我想将进度消息记录到表中(并且即使存储过程回滚也保留该日志)。
但我的理解是,在发送线程提交(外部事务)之前,无法从队列中接收消息。这是真的?如果是这样,我有什么选择?