现有需求:两个关联表A,B。当A中插入一条记录时,在B中插入多条记录,同时将A中的主键插入B中,如果B中插入操作失败时,A表回滚。在EJB 用Tx jdbc driver做连接,再做Tx datasource。分布式事务必须用Tx 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 试试sessinbean里加一个方法,这个方法只是调用 inserta 和insertb试试,我没做过...好像事务是按方法的..只是提示,还是看一下 文档 的好:) weblogic jat 可以达到你的要求! 上面的问题没有把事务管理写进去, public UserTransaction getUserTransaction() throws Exception{ UserTransaction uT = null; try{ uT = this.sessionContext.getUserTransaction(); int status = uT.getStatus(); if ( status != javax.transaction.Status.STATUS_ACTIVE ) { uT.begin(); status = uT.getStatus(); } } catch ( Exception e ) { e.printStackTrace(); throw new ResourceRegisterException(e.getMessage()); } return (uT); } private void commit() throws Exception { try { if ( userTransaction.getStatus() == javax.transaction.Status.STATUS_NO_TRANSACTION ){ throw new ResourceRegisterException("There is no transaction associated with this thread"); } if ( userTransaction.getStatus() == javax.transaction.Status.STATUS_ACTIVE ) { userTransaction.commit(); } else { throw new ResourceRegisterException("User Transaction Timeout"); } } catch ( Exception e ) { e.printStackTrace(); throw new ResourceRegisterException(e.getMessage()); } } private void rollback() throws ResourceRegisterException { try{ userTransaction.rollback(); } catch ( Exception e1 ) { e1.printStackTrace(); throw new ResourceRegisterException(e1.getMessage()); } }把上面几个关于事务的方法加进去就行了。 spring3 切换数据源进行读写分离,拦截不到org.springframework.jdbc.core.JdbcTemplate.*(..) 做过进销存的人朋友进下 我在run.conf了JAVA_OPTS, 为什么不起作用? 关于jsp提交的问题 MSSQL数据库连接不上了!!!在线等 Tomcat的JessionId 求助petstore1。3。2的编译问题 请问各位高手,crystalReport在java中怎么使用?谢谢! Weblogic 8.1配置ejb时的错误????? 《Java与模式》 一个作图程序paint函数问题 jboss新手,请教!!!各位请帮忙
这个方法只是调用 inserta 和insertb试试,我没做过...
好像事务是按方法的..只是提示,还是看一下 文档 的好:)
public UserTransaction getUserTransaction() throws Exception{
UserTransaction uT = null;
try{
uT = this.sessionContext.getUserTransaction();
int status = uT.getStatus();
if ( status != javax.transaction.Status.STATUS_ACTIVE ) {
uT.begin();
status = uT.getStatus();
}
}
catch ( Exception e ) {
e.printStackTrace();
throw new ResourceRegisterException(e.getMessage());
} return (uT);
} private void commit() throws Exception { try {
if ( userTransaction.getStatus() == javax.transaction.Status.STATUS_NO_TRANSACTION ){
throw new ResourceRegisterException("There is no transaction associated with this thread");
}
if ( userTransaction.getStatus() == javax.transaction.Status.STATUS_ACTIVE ) {
userTransaction.commit();
}
else {
throw new ResourceRegisterException("User Transaction Timeout");
}
}
catch ( Exception e ) {
e.printStackTrace();
throw new ResourceRegisterException(e.getMessage());
}
} private void rollback() throws ResourceRegisterException {
try{
userTransaction.rollback();
}
catch ( Exception e1 ) {
e1.printStackTrace();
throw new ResourceRegisterException(e1.getMessage());
}
}把上面几个关于事务的方法加进去就行了。