异步EJB上的JTA事务

时间:2014-03-26 08:44:30

标签: java java-ee asynchronous transactions


我想在我们的Java EE 6应用程序中使用EJB 3.1的异步功能。我唯一担心的是如何管理JTA交易? F.E.如果我将异步调用与EJB同步调用混合会发生什么?他们会加入相同的交易或异步交易生活在他们自己的tx上下文?
Thannks!

1 个答案:

答案 0 :(得分:1)

如果您没有注释任何内容,它们将在同一个交易中。当异步会话bean在它们之间进行事务传播时,其行为与同步会话bean的行为相同。

例如,如果你有一个async方法,从中调用另一个EJB的sync方法,那么事务将在同步EJB方法之间传播(即默认情况下它们将在事务中执行)。

唯一的区别与客户端事务上下文的传播有关。规范说:

  

客户端事务上下文不会随异步传播   方法调用。从Bean Developer的角度来看,从来没有   从客户端流入的事务上下文。这意味着,为   例如,REQUIRED事务属性的语义   异步方法与REQUIRES_NEW完全相同。