交易经理如何知道我们何时参与交易资源并且需要特别处理?例如:
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
}
答案 0 :(得分:0)
通过transaction annotations。这些允许程序员以声明方式定义EJB组件的事务行为。这意味着您可以指示persistentManager.doWork()
它应该在当前事务中登记,somefield2.doWork()
它应该自己开始(或者根本不运行。
对于更复杂的方案,您还可以使用Bean Managed Transactions,它允许对事务行为进行编程控制,以满足更加模糊的要求。