gpt4 book ai didi

java - 使用 localhost VM 创建的 ActiveMQ 不会创建 JMX Bean

转载 作者:行者123 更新时间:2023-12-01 05:57:55 26 4
gpt4 key购买 nike

这个问题来自here但可以是一个完全独立的问题。

我使用 Spring 2.5.2 和 activemq 5.2.0 进行了单元测试。我使用“vm://localhost”创建一个代理(useJmx 为 true),向“myTopic1”发出几条消息,打开此进程的 jconsole,我在 org.apache.activemq -> localhost -> Topic 下看到 MBean -> ActiveMQ.Advisory.Producer.Queue.myTopic1。这是咨询主题(当生产者/消费者加入时)。但我没有看到专门用于 myTopic1 本身的 MBean。

当我单独运行 activemq 并使用我的 Java 程序连接到它时,情况似乎并非如此。例如,我下载了 ActiveMQ 5.2.0,更改了 activemq.xml 以使用 createConnector=true。我启动了activeMQ,向“myTopic1”发送了一条消息。我使用“localhost:1099”触发了连接到的 jconsole,并且在 org.apache.activemq -> localhost -> Topic -> myTopic1(除了咨询主题之外)下看到了一个 JMX Bean。它有属性告诉我有多少消息被触发。

我在这里遗漏了什么吗?为什么 JMX beans 与 vm://localhost (内置代理创建)和本地启动的 activemq 服务器不同?

最佳答案

显然只有我一个人这么认为。线索位于上面创建的“ActiveMQ.Advisory.Producer.Queue.myTopic1”JMX 中。我使用了以下签名,

jmsTemplate.send("topic1", textMessage);

现在我知道,当我们使用字符串目标名称时,Spring 默认将其发送到队列。因此“topic1”被视为队列名称(而不是主题)。我将代码更改为

Topic topic = //physically look up the topic
jmsTemplate.send(topic, textMessage);

现在可以使用了。

关于java - 使用 localhost VM 创建的 ActiveMQ 不会创建 JMX Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2326836/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com