Apache camel ApacheCamel:如何在应用程序运行和停止时创建和删除WMQ队列

Apache camel ApacheCamel:如何在应用程序运行和停止时创建和删除WMQ队列,apache-camel,ibm-mq,Apache Camel,Ibm Mq,目前我正在使用ApacheCamel,我需要做的是在启动应用程序时在Camel中创建一个WMQ队列(类似于会话队列),并在停止应用程序时删除它。有什么可能的办法吗 或者,在创建连接工厂时,我检查了ApacheCamel是否会创建一个具有随机名称的临时名称。有没有办法将临时队列的名称从随机名称更改为静态名称 仅供参考,目前我正在使用Spring进行组件配置 谢谢好的,这实际上与Apache Camel没有任何关系,因为它可以被视为与此问题相关的任何JMS客户端应用程序 IBM WebSphere

目前我正在使用ApacheCamel,我需要做的是在启动应用程序时在Camel中创建一个WMQ队列(类似于会话队列),并在停止应用程序时删除它。有什么可能的办法吗

或者,在创建连接工厂时,我检查了ApacheCamel是否会创建一个具有随机名称的临时名称。有没有办法将临时队列的名称从随机名称更改为静态名称

仅供参考,目前我正在使用Spring进行组件配置


谢谢

好的,这实际上与Apache Camel没有任何关系,因为它可以被视为与此问题相关的任何JMS客户端应用程序

IBM WebSphere MQ有两种类型的队列

  • 需要由管理员、脚本等创建(并可能删除)的常规队列

  • 临时队列,如果名称不相关,则它在队列管理器的上下文中必须是唯一的。JMS不允许命名临时队列,因为该名称实际上是不相关的,因为它应该使用一次,然后丢弃

WMQ的设计并不是为了支持您的用例

唯一的选择是确定您是否能够以某种方式自动化创建/删除队列的任务。这通常在MQ Explorer/MQSC/MQMON或类似工具中手动完成。其他MOM软件(如ActiveMQ)会自动执行这些操作

远程创建队列可能有几种方法。一种是使用它,您可以将其发送到诸如SYSTEM.ADMIN.COMMAND.QUEUE之类的队列。但是,该队列在企业设置中通常受到很好的保护,因此只有管理员才能使用它。然而,在你的问题中你没有这方面的信息。另一个选项(不太好,但不是更少)是让队列管理器服务器上的应用程序(可能是camel?)使用参数调用runmqsc来创建队列