在运行时创建 JMS 队列 [关闭]
Posted
技术标签:
【中文标题】在运行时创建 JMS 队列 [关闭]【英文标题】:Creating JMS Queues at runtime [closed] 【发布时间】:2011-02-01 12:19:32 【问题描述】:我正在开发一个应用程序用户可以创建/删除队列的应用程序。此外,他还可以将消息从 1 个队列移动到另一个队列,删除消息,根据某些过滤器重新排列队列中的消息。
一种可能的设计是将activemq 用于队列,将apache camel 用于与Grails 集成的各种其他操作。 但我不确定 ActiveMQ 是否允许在运行时创建/删除队列。 这会是实施此类系统的好选择吗?
【问题讨论】:
【参考方案1】:还有一些关于 AMQ 和按需创建目的地的信息 http://activemq.apache.org/how-do-i-create-new-destinations.html
【讨论】:
【参考方案2】:是的,您可以在运行时创建/删除/管理 ActiveMQ 队列。这可以使用 ActiveMQ/Camel API 或 JMX API 来完成...
本文更详细地讨论了 ActiveMQ JMX API 方法...
http://www.consulting-notes.com/2010/08/monitoring-and-managing-activemq-with.html
您可以使用 Camel 的接收者列表动态路由到端点(可以是新的 JMS 队列等)...
http://camel.apache.org/recipient-list.html
【讨论】:
【参考方案3】:任何 JMS 客户端都可以使用Session.createQueue()
或Session.createTopic()
。 IIRC,默认情况下这些将是临时的,这意味着一旦特定会话关闭,它们就会消失。
您还应该阅读ActiveMQConnection JavaDoc,它为您提供了许多用于创建临时或持久目标(队列和/或主题)的选项。
【讨论】:
以上是关于在运行时创建 JMS 队列 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在运行时手动将消息驱动 bean 订阅到 JMS 队列/主题?
远程机器未运行时如何为远程 JMS 队列初始化 ConnectionFactory?