我试图使用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/