我有一个.NET应用程序,它使用WebSphere MQ作为可靠的发布/订阅中间件,我在从服务器向客户端发送后续消息队列时遇到问题。服务器使用来自this library的XMSClient对象,发布消息,并在确认传递时检查新消息并发布,直到没有留下发布,此时它等待30秒并且将轮询更多要发送的邮件。但是,我发现经常发生的事情是当我有一个消息队列(少至25个)时,WebSphere会突然将CPU使用率提高到100%,除非我使用MQ Explorer并清除它,否则无法恢复渠道。这可能会导致我的程序出现灾难性问题:有没有人知道导致这种情况的原因以及解决问题的方法?
由于
答案 0 :(得分:0)
现在我想我更了解你的情景。我相信您正在为您的服务器应用程序使用XMS.NET程序集,该程序将消息发布到使用this library开发的MQTT客户端应用程序。在某个阶段,MQTT的WebSphere MQ通道进入高CPU利用率。
您已经提到过System和Java.exe占用了很多CPU。您可以安全地忽略System的CPU使用率。这是导致高CPU使用率的Java.exe。似乎在某些时候MQTT通道将进入一个消耗高CPU的循环。它可能与您的MQTT客户端应用程序持续对话。问题可能出在您的MQTT客户端应用程序上。所以我的建议是通过使用其他一些MQTT客户端应用程序来隔离问题,看看是否出现同样的问题。您可以使用MQ Explorer附带的MQTT Client Utility进行测试。