【发布时间】:2010-12-07 08:19:14
【问题描述】:
我需要即时创建临时队列。这怎么可能?
【问题讨论】:
我需要即时创建临时队列。这怎么可能?
【问题讨论】:
来自您的 jms Queue/TopicSession 对象:请参阅 QueueSession javadoc。
您需要在临时队列的生命周期内保持会话打开。
典型用法是客户端打开会话并将消息放在共享处理队列中,使用消息的回复字段中的临时队列。 eg:(伪代码)
Queue queue = session.createQueue("shared");
Queue responseQueue = session.createTemporaryQueue();
Message message = session.createMessage();
message.setJMSReplyTo(responseQueue);
...
session.commit();
...
MessageConsumer responseConsumer = session.createConsumer(responseQueue);
Message response = responseConsumer.receive();
...
session.close();
MDB(或读取共享进程队列的侦听器)会将响应发送回回复队列。如果客户端因任何原因死亡,则其会话将关闭,队列将不复存在。
【讨论】: