数据库恢复后 Service Broker 不工作

2024-03-15

在服务器上设置一个可用的 Service Broker,我们正在迁移到新服务器,但我似乎无法在新服务器上设置 Service Broker。

已经完成了(对我而言)显而易见的事情,例如在数据库上启用代理,删除路由、服务、合同、队列甚至消息类型并重新添加它们,将 ALTER QUEUE 设置为 STATUS ON

从 sys.service_queues 中选择 *

给我一个队列列表,包括我自己的两个,显示为activation_enabled、receive_enabled 等。

不用说,队列不起作用。当我将消息放入其中时,什么也没有进来,也没有任何东西出来。

有任何想法吗?我确信我错过了一些非常明显的东西......


只是在黑暗中拍摄:

ALTER AUTHORIZATION ON DATABASE::[restored db name] TO [sa];

恢复的数据库的 dbo 是在原始服务器上创建该数据库的 Windows SID。这可能是本地 SID(例如 SERVERNAME\user),在新服务器上没有任何意义。此问题通常会影响激活的程序和may影响消息传递,这两个问题的发生都是由于 SQL 无法模拟“dbo”。将 dbo 更改为有效的登录 SID(如 sa)可以解决此问题。

如果这不能解决问题,那么您需要追踪消息的去向。如果它们留在 sys.transmission_queue 中,那么您必须检查 Transmission_status。如果它们到达目标队列但没有发生激活,请检查 ERRORLOG。如果它们消失了,那就意味着你消失了一劳永逸 http://rusanu.com/2006/04/06/fire-and-forget-good-for-the-military-but-not-for-service-broker-conversations/(SEND 后紧跟着 END),因此您将删除指示原因的错误消息。本文对话框故障排除 http://rusanu.com/2005/12/20/troubleshooting-dialogs/包含更多查看位置的提示。

最后但并非最不重要的一点是,尝试使用ssb诊断程序 http://technet.microsoft.com/en-us/library/bb934450.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库恢复后 Service Broker 不工作 的相关文章

随机推荐