所有,
我有一个豆子:
@Stateless
@TransactionManagement(TransactionManagementType.CONTAINER)
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
Class A {
public void methodeA(){
try{
ejbRemote1.xxx()
}
catch(Exception ex) {
log.error(ex)
}
...
methodeB();
...
}
public void methodeB(){
try{
ejbRemote2.yyy()
}
catch(Exception ex) {
log.error(ex)
}
}
}
使用符号@TransactionAttribute(TransactionAttributeType.REQUIRED)在ejb远程定义了methode xxx()
使用符号@TransactionAttribute(TransactionAttributeType.REQUIRED)
在远程ejb中使用了方法yyy()我的问题我成功调用了methode xxx(),我的情况是methode xxx()抛出ZZZException extend runtimeException(当这个方法抛出一个ZZZException时是好的,是一个功能需要) 我的eroor在我的文件记录器中。 但是线程去调用方法时的问题yyy()我的线程没有进入方法yyy()但是立即抛出一个ZZZException同样的异常抛出当我调用xxx()并且我在服务器控制台中得到这个exeption
<27 juil. 2016 10 h 45 CEST> <Notice> <EJB> <BEA-010014> <Error occurred while attempting to rollback transaction: javax.transaction.SystemException: Timeout during rollback processing
javax.transaction.SystemException: Timeout during rollback processing
at weblogic.transaction.internal.ServerTransactionImpl.internalRollback(ServerTransactionImpl.java:433)
at weblogic.transaction.internal.ServerTransactionImpl.rollback(ServerTransactionImpl.java:387)
at weblogic.ejb.container.internal.BaseRemoteObject.handleSystemException(BaseRemoteObject.java:862)
at weblogic.ejb.container.internal.BaseRemoteObject.handleSystemException(BaseRemoteObject.java:809)
at weblogic.ejb.container.internal.BaseRemoteObject.postInvoke1(BaseRemoteObject.java:518)
Truncated. see log file for complete stacktrace
我需要忽略如果方法xxx()抛出异常只是我记录错误但我需要执行yyy()没有问题
methode xxx()在另一个项目中我无法更改事务类型或代码 但yyy()在我的项目中我无法修复它
持久性是jta事务。
weblogic 10.3.5
eclipselink 2.4.2
ejb 3
javaEE 5
想要你。