我试图使用this tutorial理解JMS API。创建会话对象时,我们将2个参数传递给createSession(argument1,argument2)

arguments1值是一个boolean值。

如果您指定,

true:这是一个事务处理的会话。

false:这是一个非事务会话。

我的问题是,交易和非交易之间有什么区别,为此我读了this tutorial。我了解得更好。但是我很想知道,这两种类型的会话在实际情况下是有用的。

你能用一个简单的例子来解释吗?

最佳答案

如果必须在逻辑事务完成之前接收多个消息,则事务处理会话很有用。

例如,必须先消耗三则消息,然后才能将结果持久保存到数据库中。在这种情况下,完成对数据库的更新后,您将提交队列会话以一次确认三条消息。

否则,如果在阅读了两条消息后终止了程序,则这两条消息将会丢失(如果使用AUTO_ACKNOWLEDGE)。

因此,已事务处理和未事务处理之间的区别是您确认的对象:在第一种情况下,它是会话,在另一种情况下,是单独的消息。

关于java - session 交易在哪里有用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18697225/

10-10 22:10