用于EJB方法调用的TimeOut

时间:2014-07-23 07:25:00

标签: java-ee timer timeout ejb

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方法继续处理。

1 个答案:

答案 0 :(得分:0)

Glassfish以及Weblogic和其他可能的容器都具有此功能:

  

要实现同步RMI超时,请使用remote-client-timeout   weblogic-ejb-jar.xml中的部署描述符元素

但请务必阅读documentation和使用RMI超时的指南。