在我的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
答案 0 :(得分:0)
在致电service.ping()
之前,您可以尝试进行低级别的tcp ip连接。
例如,使用ClientSocket
类。通过这种方式,您将需要存储主机和端口。