【发布时间】:2011-08-23 23:13:16
【问题描述】:
我已经在两个不同的实例中实现了两个 SSB。它们是基于异步触发器的数据推送模式。
我使用的是SQL Server Enterprise 2008 R2,版本信息如下
我的 SQL 版本是 Microsoft SQL Server Management Studio 10.0.4064.0 Microsoft 分析服务客户端工具 10.0.4064.0 Microsoft 数据访问组件 (MDAC) 6.1.7601.17514 微软 MSXML 3.0 4.0 5.0 6.0 微软 Internet Explorer 9.0.8112.16421 微软 .NET 框架 2.0.50727.5446 操作系统 6.1.7601
我的队列是 RETENTION 设置为 off。
Sender Queue 和 sys.TransmissionQueue 为空。
Target Queue 是 empty ,但 Target sys.transmissionqueue 包含 5000 条消息 我 已发送。
表,数据在@Target DB中插入被锁定。 "当我使用 nolock 选择 时,5000 条记录 会出现"
Profiler显示
@发件人
经纪人:对话STARTED_OUTBOUND
经纪人:Conversation CONVERSING
代理:消息分类
代理:远程消息确认
经纪人:对话组
@接收者
经纪人:对话 DISCONNECTED_OUTBOUND
经纪人:对话组
代理:消息分类
代理:远程消息确认
Broker:Message Undeliverable 由于无法按时发送,此消息已被丢弃。状态:1
- SSBDIAGNOSE 显示无错误。
我已经使用 Rusanu 的博客条目来解决问题,但我认为我的情况不同!
希望任何人都可以提供帮助:)
【问题讨论】:
-
发生了什么使消息卡在目标 sys.transmission 队列中?为什么表被锁定?
标签: sql-server sql-server-2008 service-broker