单个消息卡在传输队列中

时间:2019-08-20 23:35:15

标签: service-broker

好的,我正在使用服务代理,通过服务代理发送的所有其他邮件都可以正常工作。除了一条消息停留在传输队列中并且不会发送之外。我看到的唯一错误消息是:

连接尝试失败,并显示错误:'10060(连接尝试失败,因为在一段时间后连接方未正确响应,或者连接建立失败,因为连接的主机未响应。)。

但不清楚是否相关。再次在发送相同消息类型的其他消息上正常工作。

1 个答案:

答案 0 :(得分:0)

  

问题是当XML包含特殊字符时Service Broker无法正常工作   字符

问题在于,在生成通过服务代理发送的xml时,我们的文档中有一个á(急性)。我们通过将消息类型从VALIDATION =切换来解决了此问题 WELL_FORMED_XML以 验证=无。

然后我们修改了 接收队列上已激活的存储过程。换行

@message_body = CAST(message_body as XML),

-- to

@message_body = CAST(CAST(message_body AS VARCHAR(MAX)) AS XML),

这解决了问题。

我相信或者我们可以对xml进行消毒以将á(a-acute)替换为和html char代码,但是用例要求我们允许使用很多特殊字符,而这些特殊字符很难识别面前。


连接尝试失败,并显示错误:'10060(连接尝试失败,因为在一段时间后连接方未正确响应,或者连接建立失败,因为连接的主机未响应。)。

此消息是由于与同一服务器上运行的另一个Service Broker实例的连接问题引起的。