【发布时间】:2017-09-18 12:27:56
【问题描述】:
一点背景:我需要提高我们的批处理框架之一的性能。在那里,批处理输入被发送到 JMS 队列。此外,在队列端点,我们有一个 MDB,它正在使用消息。现在,我在这里怀疑,如果有大量消息,则没有 MDB 实例可用于使用这些消息,因为所有这些消息都在处理先前的消息时被搁置。为了改进这一点,我正在考虑在 MDB 业务逻辑中实现一个线程池,这样一旦 MDB 收到消息并将其传递给线程,它就可以免费使用另一条消息。
现在在实现此之前,我想监控我的 JMS 队列以检查消息是否真的在队列中等待。所以我需要知道这个监控是否可以通过一些 WAS 管理控制台或一些 JMX 应用程序来完成。我的主要目的是检查队列中每条 jms 消息的等待时间。
【问题讨论】:
-
在开始实现一些复杂的逻辑之前,您必须知道消息顺序是否对您至关重要,可以使用持久/非持久消息。检查“每个端点的最大并发 MDB 调用”的当前设置,通过 PMI 检查运行了多少并发 MDB 以及 onMessage 平均响应时间是多少。您还可以使用“最大批量大小”设置来检查它是否会产生任何影响。
-
@Gas 对不起,我不擅长缩写。这是什么PMI?是的,顺序并不重要,因为队列中的消息是由线程池从平面文件中放入的,线程池可以按任意随机顺序排列。
-
PMI 是性能监控基础架构,内置 WAS 功能,可让您监控各种事物。在 WebSphere 知识中心查找更多详细信息。