想知道如何在运行时在JMS中创建物理队列。当我搜索这个的时候,我得到了Creating JMS Queues at runtime
但当我阅读http://activemq.apache.org/how-do-i-create-new-destinations.html时,我才知道Creating JMS Queues at runtime中提到的queue并没有在服务器端创建任何物理队列。
如果我错了,请纠正我。如果有人知道在运行时创建物理队列,请重播。
提前谢谢。
发布于 2011-06-26 03:57:53
“普通”队列的创建不受JMS标准的限制。根据您想要做什么,有两种方法:
发布于 2012-03-27 09:48:00
JMS标准只处理发送和接收来自对象(如队列和主题)的数据。JMS工件的创建是特定于供应商的,通常需要使用:
1)特定供应商API(非JMS)
2)针对JMS服务器的命令/管理消息(activemq上的命令代理)
3)JMX API
我使用了JMX方法,这是最强大的,但也是最多的工作。
activemq (version 5.0+)的JMX方法
a) JMS服务器设置
1)在activemq启动脚本和activemq.xml文件中启用JMX
2)如果您要向服务器进行身份验证,请确保您的用户具有在activemq.xml中设置的管理员权限(请参阅http://activemq.apache.org/security.html)
3)重启activemq服务器
b)您的客户端代码
1)创建一个org.apache.activemq.broker.jmx.BrokerViewMBean
实例(您需要使用一些JMX连接代码进行连接,这有点凌乱)
2)使用它的addQueue
方法。这将在服务器上创建一个队列
( hornetq的过程与此类似,但由于您提到了Activemq,因此我在这里省略了hornetq的详细信息。)
我自己也用过这种方法,而且很管用。
另一种选择是在Activemq中使用命令代理,但我没有使用这些代理的个人经验。这些是包含管理命令的特殊消息,也可以执行您想要的操作。
https://stackoverflow.com/questions/6438489
复制相似问题