我正在为第一支团队在线阅读 SQL Server 书籍,同时学习如何使用服务代理,我遇到了这样的声明:
实现该服务的应用程序读取消息、运行查询并返回结果。所有这三个操作都发生在同一个事务中。如果在事务提交之前发生故障,则整个事务回滚,消息返回队列。当计算机恢复时,应用程序会重新启动并再次处理该消息。
我猜这会以与通常交易相同的方式阻止?IE。行/页锁。我对么?这是我应该担心的事情,还是在我遇到问题之前将其搁置?
我正在为第一支团队在线阅读 SQL Server 书籍,同时学习如何使用服务代理,我遇到了这样的声明:
实现该服务的应用程序读取消息、运行查询并返回结果。所有这三个操作都发生在同一个事务中。如果在事务提交之前发生故障,则整个事务回滚,消息返回队列。当计算机恢复时,应用程序会重新启动并再次处理该消息。
我猜这会以与通常交易相同的方式阻止?IE。行/页锁。我对么?这是我应该担心的事情,还是在我遇到问题之前将其搁置?
当服务代理使用激活存储过程(或以任何方法)从队列中提取消息时,所有正常的锁定规则都适用于队列和在从服务代理队列接收消息后在代码中引用的对象。
请注意,您引用的 BOL 中的信息只有在您在明确定义的交易中进行接收时才是正确的。如果您收到一条消息并且没有显式事务要回滚,则数据库无法将消息放回队列中。