ror*_*yok 14 sql-server service-broker
在服务器上设置了一个正常运行的Service Broker,我们正在迁移到新服务器,但我似乎无法在新机器上设置Service Broker.
已经做了明显的(对我来说)像DB上的启用代理,丢弃路由,服务,合同,队列甚至消息类型并重新添加它们,使用STATUS ON设置ALTER QUEUE
SELECT*FROM sys.service_queues
给我一个队列列表,包括我自己的两个队列,显示为activation_enabled,receive_enabled等.
不用说队列不起作用.当我把消息丢进他们时,没有任何东西进入,什么都没有出来.
有任何想法吗?我确信我错过了一些非常明显的东西......
Rem*_*anu 35
只是在黑暗中拍摄:
ALTER AUTHORIZATION ON DATABASE::[restored db name] TO [sa];
Run Code Online (Sandbox Code Playgroud)
已还原数据库的dbo是在原始服务器上创建数据库的Windows SID.这可以是在新服务器上没有意义的本地SID(例如,SERVERNAME\user).此问题通常会影响已激活的过程,并可能影响邮件传递,这两个问题都是由于SQL无法模拟"dbo"而发生的.将dbo更改为有效的登录SID(如sa)将修复它.
如果这不能解决问题,那么您需要追踪消息的去向.如果它们保留在sys.transmission_queue中,那么您必须检查transmission_status.如果它们到达目标队列但未激活,请检查ERRORLOG.如果它们消失了,这意味着你做发射后不管(SEND年底紧接着),因此您要删除指示原因的错误消息.本文疑难解答对话框包含更多提示.
最后,但并非最不重要的是,尝试使用ssbdiagnose.exe.
除了Remus的答案,您可能还想检查restoredDB的BrokerEnabled属性.每当还原数据库时,还原的数据库的BrokerEnabled属性都设置为False.因此,没有任何内容会进入您的队列.要解决这个问题:
| 归档时间: |
|
| 查看次数: |
12703 次 |
| 最近记录: |