【发布时间】:2014-07-29 14:42:22
【问题描述】:
我们在 SQL Server 2008R2 中使用 Service Broker 作为简单的作业调度程序。我们向代理发送一条消息,它会将其设置为在请求的日期/时间进行处理。
我们有一个由用户在 Sharepoint 站点中的操作自动安排的作业(存储过程),并且它已经运行了大约一年。如果它们不存在,此存储过程将创建 2 个表,如果它们存在则截断它们,然后调用 2 个其他存储过程(串联)来填充每个表。
几周前,当主过程“作业”由 SB 启动时,两个存储过程中的第二个开始失败。如果我进入 SSMS,我可以执行“作业”存储过程并且它运行完成没有问题(即两个调用的存储过程都执行没有问题,并且两个表都已填充)。
我们公司以其无限的智慧决定终止建立 Service Broker 并编写这些存储过程的人。我了解存储过程,并且开始对 SB 有所了解,但我不知道为什么第二个存储过程将从 SSMS 执行,但在从 Service Broker 调用时失败。
我唯一能想到的是服务是用这个命令创建的:
CREATE SERVICE [//ScheduledJobService]
AUTHORIZATION [user ID]
ON QUEUE [dbo].[ScheduledJobQueue] ([//ScheduledJobContract])
并且他的身份证在停止工作之日发生了一些事情。但是,这并不能解释为什么部分代码会执行,以及 Service Broker 中的其他任务如何继续执行。
我不知道在哪里寻找以及如何追踪它,因此非常感谢任何故障排除提示。
【问题讨论】:
标签: sql sql-server-2008-r2 service-broker