我可以在commit()之后重用UserTransaction实例吗?
以下代码中的ut实例的重用是否正确?
UserTransaction ut = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
ut.begin();
doSomeWork();
ut.commit();//Or rollback (I think it doesn't matter)
ut.begin(); //Or rollback (I think it doesn't matter)
doOtherWork();
ut.commit();
当定义JNDI资源时:
Reference atomikosUserTransactionFactoryDS = new Reference("com.atomikos.icatch.jta.UserTransactionImp",
"com.atomikos.icatch.jta.UserTransactionFactory", null);
atomikosUserTransactionFactoryDS.add(new RefAddr("name") {
public Object getContent() {
return "UserTransaction";
}});
atomikosUserTransactionFactoryDS.add(new RefAddr("type") {
public Object getContent() {
return "com.atomikos.icatch.jta.UserTransactionImp";
}});
initContext.rebind("java:comp/UserTransaction", atomikosUserTransactionFactoryDS);
我不确定是否需要添加另一个查找,以便在开始新的UserTransaction之前从工厂检索新的UserTransaction?
我不认为它是相关的,但正如资源定义所述我使用Atomikos作为我的事务管理器(因此它是工厂的工厂)。
谢谢,
以太
没有找到相关结果
已邀请:
1 个回复
磋判粗惊