由于消息主题没有订阅者,我们如何获得Solace中丢弃的直接消息的信息?

时间:2018-04-17 03:29:04

标签: solace

我使用MNR设置了一对Solace设备,一个用于DMZ,另一个用于App Zone。我的服务器使用JCSMP连接到App Zone的Solace,而我的客户端使用MQTT连接到DMZ的Solace。在将消息发布到我的客户端订阅的主题(例如请求/状态)之前,我的服务器订阅了返回的消息主题(例如,返回/状态)。收到消息后,我的客户端发布对返回/状态的响应。有时响应无法到达我的服务器。

我怀疑这可能是由于我的服务器订阅返回/状态主题可能无法及时复制从安卓在App Zone到Solace在DMZ。有没有办法说明这实际发生了?我能想到的一种方法是获取有关哪些主题发布到哪些主题的信息,这个问题发生的时间以及为此主题删除的消息数量。有没有办法从Solace日志中获取此信息?

谢谢。

1 个答案:

答案 0 :(得分:2)

您可以通过检查DMZ区域设备上的无订阅匹配日志来验证是否发生了这种情况。通过运行" show log no-subscription-match"在CLI中,您可以看到客户端何时发布了无法传递给客户端的消息,因为没有匹配的订阅。

返回/状态主题的订阅可能没有及时传播到邻居路由器。为了解决这个问题,建议始终使用#P2P收件箱主题订阅来通过MNR进行请求/回复消息传递。这是在连接时为每个客户端自动注册的订阅,并在每次断开连接后进行清理。一旦邻居链接出现,路由器将为#P2P2订阅注入覆盖集订阅,这样您就不必等待订阅传播。

有关P2P收件箱订阅的更多信息,请参阅Solace文档: https://docs.solace.com/Solace-Messaging-APIs/Developer-Guide/Publishing-Messages-that.htm