EJB Timer在Exception的情况下经常运行

时间:2014-11-19 12:24:31

标签: java scheduler ejb-3.1 weblogic12c

在我的Java EE应用程序中,我正在使用带有@Schedule工作方法的Singleton Bean。它调用一个无状态Bean,通过Soap ping服务器。如果服务器关闭,则会抛出EJBException。 如示例所示,服务应该每6分钟运行一次,完成工作。 但是,只要ping服务器关闭并且发生异常,服务就会每分钟运行1-2次。对于统计和监控不利......任何人都可以帮忙吗?

@Startup
@Singleton(name="PingTimerEJB")
public class PingTimerEJB {

    @EJB
    private IService service;

    @Schedule(hour = "*", minute = "*/6", persistent = false)
    public void doWork() {
        try {
            service.ping();
        } catch (final Exception e) {// NOPMD
            //
        }
    }
}

设置:Java 6,Weblogic 12c,JRE 170_71,EJB 3.1

1 个答案:

答案 0 :(得分:0)

在致电service.ping()之前,您可以尝试进行低级别的tcp ip连接。 例如,使用ClientSocket类。通过这种方式,您将需要存储主机和端口。