Java EJB计时器在异常情况下经常运行

Java EJB计时器在异常情况下经常运行,java,scheduler,ejb-3.1,weblogic12c,Java,Scheduler,Ejb 3.1,Weblogic12c,在我的JavaEE应用程序中,我使用带有@Schedule worker方法的单例Bean。它调用通过Soap ping服务器的无状态Bean。如果服务器关闭,将抛出一个EJBException。 如示例所示,该服务应每6分钟运行一次,这样性能就可以正常工作。 但只要ping服务器关闭并且出现异常,服务就会每分钟运行1-2次。不利于统计和监控。。。有人能帮忙吗 @Startup @Singleton(name="PingTimerEJB") public class PingTimerEJB {

在我的JavaEE应用程序中,我使用带有@Schedule worker方法的单例Bean。它调用通过Soap ping服务器的无状态Bean。如果服务器关闭,将抛出一个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、EJB3.1

呼叫服务前。ping您可以尝试建立低级别tcp ip连接。 例如,使用ClientSocket类。这样,您将需要在任何位置存储主机和端口。

类似的主机和端口,可参考-