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(值)
如果花费太长时间,在这种情况下,我会向调用者抛出一个应用程序异常。
我知道TimerService
接口允许创建一个计时器,但我不能完全抛出异常超时,最重要的是,似乎EJB方法继续处理。
答案 0 :(得分:0)
Glassfish以及Weblogic和其他可能的容器都具有此功能:
要实现同步RMI超时,请使用remote-client-timeout weblogic-ejb-jar.xml中的部署描述符元素
但请务必阅读documentation和使用RMI超时的指南。