服务代理 - SQL Server错误日志中找不到对话句柄消息

时间:2014-02-06 07:29:45

标签: sql-server sql-server-2012 service-broker sqldependency query-notifications

在这个主题上打开了很多线程,似乎没有人能解决我的问题,所以我试试看......

系统: Windows Server 2012 SQL Server 2012企业版

问题: 我们使用SQLDependency在我们的应用程序中启用查询通知,这意味着它创建自己的服务,队列和过程。

问题1:查看存储过程,我看到它确实收到前0名。前0名是什么意思?

现在出现真正的问题.. 有时,错误日志会填充以下消息(当我无法打开它时): 查询通知传递无法在对话框'X'上发送消息....因为服务代理中出现以下错误:'找不到会话句柄X.消息显示为具有相同的conversation_handle或3个不同的消息。

当我从sys.conversation_endpoints查询该对话时,我确实看到它并且它被标记为is_system = 1(STARTED_OUTBOUND)。

我在错误9245上添加了一个警报,试图找出发生错误的原因。在消息'在最后一个时间间隔X查询通知错误被抑制'中,X是巨大的并且超过10,000。我猜这个数字与重审有关,因为我们没有这么多的通知。

起初,我认为它可能与'DialogTimer'消息有关,因为我注意到当我结束该特定消息的对话时,消息停止但最近它没有工作所以唯一的想法我可以做到阻止它设置NEW_BROKER。

当我回收到我们的应用程序池时,它会立即发生,虽然我在我们的日志中看到它调用了SQLDependency.Stop,我没有看到对象(服务,队列和过程)被删除,错误消息开始充斥错误日志。

如果需要进一步的详细信息,请与我们联系。 感谢您的帮助,

1 个答案:

答案 0 :(得分:0)