【发布时间】:2012-08-12 11:03:20
【问题描述】:
如果我使用下面的代码来创建发送者和接收者
qsender = qsession.createSender((Queue)msg.getJMSDestination());
qreceiver=qsession.createReceiver((Queue)msg.getJMSDestination());
然后这样做
qsender.send(msg);
它是否只是将消息发送到队列并且它会永远保留在队列中吗?是不是需要调用receiver上的receive()方法或者实现MessageListener接口才能把它传给receiver?
编辑:更多信息
qsender = qsession.createSender((Queue)msg.getJMSDestination());
qreceiver=qsession.createReceiver((Queue)msg.getJMSDestination());
temp1 = qsession.createTemporaryQueue();
responseConsumer = qsession.createConsumer(temp1);
msg.setJMSReplyTo(temp1);
responseConsumer.setMessageListener(responseListener);
msg.setJMSCorrelationID(msg.getJMSCorrelationID()+i);
qsender.send(msg);
在上面的代码中,临时队列是做什么用的?是为了接收消息吗?是接收器吗?如果是,msg.setJMSReplyTo(temp1) 的用途是什么?
【问题讨论】:
标签: java jms message-queue