Java EJB事务和事务资源

时间:2015-08-15 16:46:49

标签: java transactions ejb

交易经理如何知道我们何时参与交易资源并且需要特别处理?例如:

EJB中的

方法:

public void doStuff() {
  persistentManager.doWork(); // needs to be rolled back/commmited
  somefield2.doWork(); // doesnt participate in roll back/commit
  System.out.println("x"); // doesnt participate in roll back/commit
  jmsStuff.doWork(); // needs to be rolled back/commmited
}

1 个答案:

答案 0 :(得分:0)

通过transaction annotations。这些允许程序员以声明方式定义EJB组件的事务行为。这意味着您可以指示persistentManager.doWork()它应该在当前事务中登记,somefield2.doWork()它应该自己开始(或者根本不运行。

对于更复杂的方案,您还可以使用Bean Managed Transactions,它允许对事务行为进行编程控制,以满足更加模糊的要求。