In my Java EE Application I'm using a Singleton Bean with a @Schedule worker method. It calls a statless Bean that pings a server via Soap. In case the Server is down an EJBException gets thrown. As shown in the Example the Service should run every 6 Minutes, which perfeclty works. But as soon as the pinged Server is down and Exceptions occure the Service runs 1-2 times per minute. Not good for statistiks and monitoring... Can anyone help?
@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
//
}
}
}
Setup: Java 6, Weblogic 12c, JRE 170_71, EJB 3.1
Before call
service.ping()
you can try to make low level tcp ip connection. For example useClientSocket
class. In this way you will need to store anywhere host and port.