【发布时间】:2013-01-29 16:35:16
【问题描述】:
我有一个 .NET 应用程序,它使用 WebSphere MQ 作为可靠的发布/订阅中间件,在从服务器向客户端发送后续消息队列时遇到问题。服务器使用来自this library 的 XMSClient 对象,发布一条消息,并在确认交付后,检查是否有新消息并发布该消息,直到没有可发布的消息,此时它等待 30 秒并轮询更多消息要发送。但是,我发现经常发生的情况是,当我有一个消息队列(只有 25 个)时,WebSphere 会突然将 CPU 使用率推到 100%,除非我使用 MQ Explorer 并清除渠道。这可能会导致我的程序出现灾难性问题:有谁知道导致这种情况的原因以及解决方法?
谢谢
【问题讨论】:
-
WMQ 运行多个进程。你能告诉我们哪些进程正在消耗 100% 的 CPU。此外,您使用的 MQTTDotnet 程序集仅适用于客户端。不确定如何从 MQ 服务器端使用它们。
-
您好,占用 CPU 最多的进程是 System 和 java.exe - 分别约为 56% 和 41%。另外:“您使用的 MQTTDotnet 程序集也仅用于客户端。” - 你能澄清一下这个说法吗?我使用该库中的 MQTTClient 对象作为客户端,使用 XMSClient 对象作为服务器。