事务处理参数对QueueConnection.createQueueSession的意义是什么(boolean transacted,int acknowledgeMode)

时间:2011-11-22 01:59:54

标签: transactions queue jms

在JMS API中,我们在下面的方法 QueueConnection.createQueueSession(boolean transacted,int acknowledgeMode)

我想知道交易参数究竟是什么意思? 我知道当设置为true时,我们需要在完成发送或接收后调用QueueSession.commit()方法, 但如何将其设置为false?这是否意味着发送/接收操作不可信?或者它仍然可以吗?,如果仍然可以,那为什么我们需要区分这些情况呢?

或将其设置为true仅适用于我们需要在一个事务中放入多条消息的情况? 谢谢。

2 个答案:

答案 0 :(得分:1)

第一个参数指示QueueSession是否被处理。值为true表示已处理会话,这意味着在QueueSession的生命周期内发送到队列的消息将不会传递到接收方,直到在QueueSession上调用commit方法为止。同样,在QueueSession上调用rollback方法将删除在事务会话期间发送的所有消息

答案 1 :(得分:0)

这篇Java Developer's Journal文章涵盖了相当广泛的内容 - 特定的确认模式/会话交易设置组合在那里进行了解释。