Service Broker,消息到达目标服务器但它保留在发送方队列中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Service Broker,消息到达目标服务器但它保留在发送方队列中相关的知识,希望对你有一定的参考价值。

我在发送方和接收方的服务代理处使用SQL Server 2012

我在两者上都有以下合同和消息

create MESSAGE TYPE [//Photo/Message] 
    VALIDATION = NONE


create CONTRACT [//photo/Contract]
    ([//Photo/Message]  SENT BY INITIATOR)

发送:

create SERVICE [tcp://192.168.4.173:4022/HadoopSender/Audit/HadoopDataSender] 
    AUTHORIZATION dbo
    ON QUEUE dbo.HadoopInitiatorAuditQueue -

我在接收器处创建了路径

create ROUTE [RouteDataReceiver] WITH ADDRESS = N'TRANSPORT'  

当我从发件人发出发送邮件时,它到达目标服务器的队列,但它在发件人处停留在sys.transmission_queue,为什么此邮件未从发件人队列中删除sys.transmission_queue

有什么配置我应该申请?

答案

因为接收器的路线是运输

发件人的服务应重命名为以下[tcp:// MachineName:PORT / UniqueServiceName]

为了让接收方服务知道它应该向哪个IP发送确认

以上是关于Service Broker,消息到达目标服务器但它保留在发送方队列中的主要内容,如果未能解决你的问题,请参考以下文章

Kafka有个啥参数可以让consumer阻塞知道新消息到达?

SQL Server Service Broker 示例(转)

RabbitMQ之消息确认机制(事务+Confirm)

RabbitMQ之消息确认机制(事务+Confirm)

SQL Server Service Broker 的缺点 [关闭]

对比一些MQTT的代理(broker)