在JMS API文档,它表示:JMS队列接收消息?
public Message receive() throws JMSException
接收此消息消费者产生的下一个消息 。该调用将无限期地阻止 ,直到生成消息或直到此消息使用者关闭。
如果这个接收是在一个事务中完成的,那么消费者会保留这个消息直到事务提交。
这里我有三个问题: 1.在代码中,我们是否需要while循环来接收消息?像:
while(true){
Message msg = queue.receive();
....
}
什么是事务设置?如何提交交易?像这样:
boolean transacted = false; session = connection.createQueueSession(transacted, Session.AUTO_ACKNOWLEDGE);
receiveNoWait()有事务支持吗?如何使用它 ?
感谢
如果使用事务,它会减小性能吗? – user595234
事务在JMS服务器上施加开销,因为它在提交之前无法释放消息。 – gregwhitaker
您还可以查看以下关于JMS与Java的一些性能建议:http://www.precisejava.com/javaperf/j2ee/JMS.htm – gregwhitaker