【发布时间】:2020-03-06 02:34:37
【问题描述】:
当我们使用javax.jms.QueueBrowser.getEnumeration() 时,它只会浏览JVM 内部的队列内容吗?它会显着影响应用程序的内存使用吗?
此外,当我们使用队列浏览器获取队列本身时,实际上会占用大量数据,而getEnumeration() 不会出现这种情况。请帮助我理解我是否正确。
【问题讨论】:
-
“JVM 内部的队列内容”是什么意思?
-
当您提到“应用程序内存使用”时,您指的是执行 QueueBrowser 的应用程序还是 ActiveMQ 代理本身?
-
“当我们使用队列浏览器获取队列本身时”究竟是什么意思?
-
是的,我的意思是应用程序执行队列浏览器
-
来自 docs :: 客户端使用 QueueBrowser 对象查看队列中的消息而不删除它们。 getEnumeration 方法返回一个用于扫描队列消息的 java.util.Enumeration。它可能是队列全部内容的枚举,也可能只包含与消息选择器匹配的消息。这是否意味着当我们执行 getEnumeration 时队列内容没有加载到应用程序内存中?