NAT和端口转发后面的Service Broker导致已经收到"损坏的消息"错误

时间:2017-08-30 07:42:39

标签: sql-server service-broker sql-server-2017

通过SQL Server Service Broker从一台计算机向另一台计算机发送消息。

  • 发件人 - 带有SQL Server 2014的Windows Server 2012 R2 12.0.4213.0基于NAT的标准,它将Service Broker的端口转发从公共IP:端口转移到本地SQL Server IP:端口。例如,假设端口为26223,并且它转发到SQL Server 4022

  • Receiver - 带有SQL Server 2017 RC2 Express的CentOS 7作为Web服务器,为Service Broker打开了相同的特定端口。 (更新到最新的SQL Server CU - 14.0.3030.27没有帮助)

我从Sender发送消息给接收者,并且首先在sys.transmission_queue中收到有关错误的alghoritm的错误,然后我发现我在发送者和接收者的端点上有加密密钥alghoritms不同并且已更改接收方端点密钥加密算法以匹配发送方

之后,我发送的邮件显示在sys.transmission_queue中,并显示另一个错误 - Service Broker/Database Mirroring network protocol error occurred.在SQL Profiler中我发现了更多详细信息:

  

代理:已损坏的消息 - 已收到已损坏的消息。二进制消息前导码格式不正确。

在Receiver端,SQL Profiler显示:

  

审计经纪人登录:4 - 协商失败 - 接收数据时发生错误:' 996(重叠的I / O事件未处于信号状态。)'。

     

审计经纪人登录:5 - 身份验证失败

除了之前的话,有时我在接收方也遇到了这个错误:

  

审计经纪人登录:4 - 协商失败 - 接收数据时发生错误:' 24(程序发出命令但命令长度不正确。)'。

我只有一条消息让该实例在发件人方sys.transmission_queue等待。

更新 我使用了 ssbdiagnose 实用程序,这就是它所说的:

D 29835 MainServer MainDatabase Messages on conversation handle 13c07ab1-6b8d-e711-80c5-002590cb2a25 (conversation id 3a7d0dd0-c957-4fe8-a98e-1cb56713023c) from service sbSenderService to service sbReceiverService cannot be transmitted dues to the following problem: Service Broker/Database Mirroring network protocol error occurred.

An internal exception occurred: No such host is known

D 29933 WebServer WebDatabase The routing address TCP://[NAT ip address was here]:26223 for service sbSenderService does not match any of the IP addresses for MainServer

An internal exception occurred: Value cannot be null. Parameter name: value

An internal exception occurred: No such host is known P 29945 Cannot parse the routing address: unknown

因此,新错误发挥作用:路由地址TCP:// [NAT IP地址在这里]:26223服务sbSenderService与MainServer的任何IP地址都不匹配

据我了解,我的MainServer(发件人)不知道TCP头中的NAT IP地址,并标记TCP包格式错误,对吧?如何解决?

UPDATE2:我们在服务器之间设置VPN隧道,但仍然存在相同的错误。测试CentOS服务器已打开所有端口,没有Selinux。现在我假设Service Broker在CentOS和Windows之间不起作用。

UPDATE3:在CentOS上更新到最新的SQL Server CU - 14.0.3030.27没有帮助

0 个答案:

没有答案