关于分布式事务处理的问题
来源:网络 更新时间:2014-12-6
下面的代码能将sessionA和sessionB中的两方法作为同一事务处理。
try{
InitialContextinitial=newInitialContext();
UserTransactionut=(UserTransaction)initial.lookup("Java:comp/UserTransaction");//1
SessionAHomeaHome=(SessionAHome)initail.lookup("SessionA");//2
SessionAa=aHome.create();
SessionBHomebHome=(SessionBHome)initail.lookup("SessionB");//2
SessionBb=bHome.create();
ut.begin();//3
a.fa();
b.fb();
ut.commit();//4
}
catch(.....){
ut.rollback();
}
1处得到一UserTransaction对象ut,2处分别得到两个sessionbean的对象,但是ut,与a,b之间并没有关联,那当3处ut.begin();时,jts如何知道将事务对象在a.fa()中所操作的资源管理器与b.fb()中所操作的资源管理器之间传播,又如何当4处ut.commit()时,对这两个资源管理器进行两阶段提交,这其中有什么澳妙吗?