Hy,有没有一种方法可以强制EJB方法停止处理并将控制权返回给具有异常的调用者?
在我的应用程序中,我有很多对远程ejb的调用,比如:
@Stateless
public class ClassSB implements ClassLocalISB {
@Override
public List<Object> businessMethod(String value) {
long start = 0;
try {
//CALL TO EJB
retVal = ejb.search(value);
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
}
现在,对于性能问题,我需要停止的执行
ejb.search(value(
如果花费的时间太长,在这种情况下,我会向调用者抛出一个应用程序异常。我知道TimerService
接口允许创建一个定时器,但我不能在超时的情况下抛出异常,除此之外,EJB方法似乎还在继续处理。
Glassfish以及Weblogic和可能的其他容器都具有以下功能:
要实现同步RMI超时,请使用远程客户端超时在weblogic-ejb-jar.xml 中找到部署描述符元素
但一定要阅读有关使用RMI超时的文档和指南。