0

我有一个 .NET 应用程序,它使用 WebSphere MQ 作为可靠的发布/订阅中间件,在从服务器向客户端发送后续消息队列时遇到问题。服务器使用此库中的 XMSClient 对象,发布一条消息,并在确认交付后检查新消息并发布该消息,直到没有剩余可发布,此时它等待 30 秒并轮询更多要发送的消息。但是,我发现经常发生的情况是,当我有一个消息队列(只有 25 个)时,WebSphere 会突然将 CPU 使用率推到 100%,除非我使用 MQ Explorer 并清除渠道。这可能会导致我的程序出现灾难性问题:有谁知道导致这种情况的原因以及解决它的方法吗?

谢谢

4

1 回答 1

0

现在我想我对你的情况有了更好的理解。我相信您正在为您的服务器应用程序使用 XMS.NET 程序集,该程序集将消息发布到使用此库开发的 MQTT 客户端应用程序。在某个阶段,MQTT 的 WebSphere MQ 通道进入高 CPU 利用率。

您提到过 System 和 Java.exe 占用大量 CPU。您可以放心地忽略系统的 CPU 使用率。导致 CPU 使用率高的是 Java.exe。似乎在某些时候 MQTT 通道将进入一个消耗高 CPU 的循环。它可能与您的 MQTT 客户端应用程序不断对话。问题也可能出在您的 MQTT 客户端应用程序上。所以我的建议是通过使用其他一些 MQTT 客户端应用程序来隔离问题,看看是否会出现同样的问题。您可以使用 MQ Explorer 附带的 MQTT 客户端实用程序进行测试。

于 2013-02-06T04:13:34.567 回答