JMS CreateQueue 问题
我有一个关于 JMS createQueue 方法的一般性问题。在 WebSphere MQ 中,此方法是否用作 JNDI 查找的替代方法?我想我可以动态创建一个队列。这可能吗?谢谢。
I have a general question about the JMS createQueue method. In WebSphere MQ is this method used as an alternative to the JNDI lookup? I was thinking that I could dynamically create a queue. Is this possible? Thank you.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您指的是
QueueSession.createQueue
,这是一个非常具有误导性的方法,并且不会执行您可能认为的操作:JMS API 不提供动态创建队列的方法(除非您指的是临时队列,这是请求-响应消息传递使用的一种非常不同的野兽)。如果您想在运行时创建队列,那将是 WebSphere 专有的。
Assuming you mean
QueueSession.createQueue
, this is a very misleading method, and doesn't do what you might think:The JMS API does not provide a way of dynamically creating queues (unless you mean temporary queues, which are a very different beast used by request-response messaging). If you want to create queues are runtime, that's going to be proprietary to WebSphere.
是的,根据规范并在上面的答案中正确指出,
因此 JMS 不提供动态创建队列的直接方法。其完成方式将特定于 JMS 提供者。 JMS 提供商可能会提供某种控制台或管理 API,您可以通过它们来执行此操作。
就Session的
createQueue()
方法而言,如果队列已经创建,它将返回对队列的引用。如果不是,将抛出JMSException
。另请注意,
createTemporaryQueue()
创建实际的物理队列。您必须调用delete()
来清理相关资源。Yes as per specs and correctly pointed out in above answer
So JMS does not provide a direct way to create queues dynamically. The way it will be done will be specific to the JMS provider. JMS provider may provide some kind of console or admin APIs by which you can do so.
As far as
createQueue()
method of Session is considered, it will return the reference to the Queue if it is already created. If notJMSException
will be thrown.Also point to note is
createTemporaryQueue()
creates actual physical queue. You will have to calldelete()
to cleanup related resources.