pep*_*epr 2 sql-server service-broker sql-server-2014
这种情况与SQL Service Broker密切相关- 通信场景 - 从SQL 2008 R2迁移到SQL 2014和SQL Service Broker - 一个中心SQL和更多的卫星SQL ...初学者希望了解详细信息.
从SQL Server 2008 R2 Standard Ed迁移后.到SQL Server 2014 Standard Ed.,相同的代码不起作用.防火墙设置为允许通信.
的sys.transmission_queue
(在发送者和接收者服务器)保持空的,并且GenericQueue
(我的队列标识符)接收消息.但是,附加到(接收SQL服务器)的过程:
ALTER QUEUE [GenericQueue]
WITH ACTIVATION (
STATUS = ON,
MAX_QUEUE_READERS = 1,
PROCEDURE_NAME = [usp_CentralActivation],
EXECUTE AS OWNER);
Run Code Online (Sandbox Code Playgroud)
未激活.我已将日志消息放入内部以获得有形证据 - 该过程未被调用.
我没有观察到任何错误信息或指示 - 或者我不知道在哪里寻找指示.我怎样才能找到问题所在?我应该在这里发布什么信息以帮助找到原因?
安装服务代理的代码是从模板生成的,除了机器标识(IP地址作为字符串)之外,完全相同的代码在SQL Server 2008 R2上运行良好.
可能EXECUTE AS OWNER
是原因吗?谁是谁OWNER
?
盲目猜测.试试这个:
EXECUTE AS USER = 'dbo';
Run Code Online (Sandbox Code Playgroud)
如果此操作失败,则数据库所有者SID在本地无效(在还原或文件复制后经常发生).解决方案很简单:
ALTER AUTHORIZATION ON DATABASE::<dbname> TO [sa];
Run Code Online (Sandbox Code Playgroud)
如果您仍有问题,请查看了解Queue Monitors.查看sys.dm_broker_queue_monitors
并查看1)队列存在,2)状态为RECEIVES_OCCURING