使用Ejb3.0、Weblogic 11g、JDBC
我正在调用在另一个部署 EAR 中远程运行的方法。
远程部署中的方法被调用,但它带有注释
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
问题是在调用远程方法之前我在数据库中执行的所有逻辑都不会提交,直到远程方法完成。
我愿意做的是承诺让“之前”逻辑发生“以及当我在远程调用后恢复正常继续时。
任何想法?
一些代码来解释:
@CallByReference
@Stateless(mappedName = "ejb/OperatorProccessBean")
@Local({ OperatorProccessBeanLocal.class })
@Remote({ OperatorProccessBeanRemote.class })
public class OperatorProccessBean implements OperatorProccessBeanLocal,
OperatorProccessBeanRemote
{
...
SBNDispatchBeanRemote SBNDispatchBean = (SBNDispatchBeanRemote) context.lookup("ejb/SBNDispatchBean#com.mirs.sbn.dispatch.SBNDispatchBeanRemote");
if (SBNDispatchBean == null)
{
logger.error(TAG + " SBNDispatchBean is null");
}
else
{
//until here I want all my data to be commited without waiting for the upcoming remote method to finish
SBNDispatchBean.updateSubscriberInBlockingList(...);
}
...
}
现在该方法updateSubscriberInBlockingList()
注释为
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
我希望在调用该方法之前提交数据。
在此先感谢,雷。