Package com.tangosol.net
Class SimpleServiceMonitor
- java.lang.Object
-
- com.tangosol.net.SimpleServiceMonitor
-
- All Implemented Interfaces:
Disposable,ServiceMonitor,AutoCloseable
public class SimpleServiceMonitor extends Object implements ServiceMonitor
TheSimpleServiceMonitorstarts and monitors services that are registered for monitoring.- Since:
- Coherence 12.1.2
- Author:
- cf 2011.05.24, hr 2012.06.28, gh 2022.11.22
-
-
Field Summary
Fields Modifier and Type Field Description protected static IntegerDEFAULT_WAIT_MILLISThe default time interval by which we check the alive status.protected ConfigurableCacheFactorym_ccfAConfigurableCacheFactoryinstance used to start the service.protected longm_cWaitMillisThe number of milliseconds between checking the status of the services.protected booleanm_fDisposedIndicates that thisServiceMonitorhas been disposed.protected booleanm_fStartedIndicates that theServiceMonitorhas started.protected Map<Service,String>m_mapServicesA map ofServices to be monitored with values being non-scoped service names.protected Threadm_threadTheThreadwe are using for monitoring the services periodically.
-
Constructor Summary
Constructors Constructor Description SimpleServiceMonitor()Construct a SimpleServiceMonitor with the default interval to check that the registered services are running (DEFAULT_WAIT_MILLIS).SimpleServiceMonitor(long cWaitMillis)Construct a SimpleServiceMonitor with the provided interval to check that the registered services are running.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidassertNotDisposed()ThrowsIllegalStateExceptionif this monitor has been disposed via invocation ofdispose().voiddispose()Invoked when all resources owned by the implementer can safely be released.ThreadgetThread()Return the thread used by this ServiceMonitor.protected booleanisDisposed()Return true if thisServiceMonitorhas been disposed via invocation ofdispose().booleanisMonitoring()Returns true iff the ServiceMonitor is monitoring a number of services.protected voidmonitorServices(long cWaitMillis)Check the service status periodically (keep alive interval), restarting any stopped services.voidregisterServices(Map<Service,String> mapServices)Adds a set ofServices to be monitored providing life support.voidsetConfigurableCacheFactory(ConfigurableCacheFactory ccf)Set theConfigurableCacheFactoryaServiceMonitorcan operate with.protected voidstart()Start monitoring the services.voidstopMonitoring()Stop monitoring all registered services.voidunregisterServices(Set<Service> setServices)Removes the supplied set ofServices from monitoring.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.oracle.coherence.common.base.Disposable
close
-
-
-
-
Field Detail
-
DEFAULT_WAIT_MILLIS
protected static final Integer DEFAULT_WAIT_MILLIS
The default time interval by which we check the alive status.
-
m_fStarted
protected volatile boolean m_fStarted
Indicates that theServiceMonitorhas started.
-
m_thread
protected Thread m_thread
TheThreadwe are using for monitoring the services periodically.
-
m_fDisposed
protected boolean m_fDisposed
Indicates that thisServiceMonitorhas been disposed.
-
m_ccf
protected ConfigurableCacheFactory m_ccf
AConfigurableCacheFactoryinstance used to start the service.
-
m_mapServices
protected Map<Service,String> m_mapServices
A map ofServices to be monitored with values being non-scoped service names.
-
m_cWaitMillis
protected final long m_cWaitMillis
The number of milliseconds between checking the status of the services.
-
-
Constructor Detail
-
SimpleServiceMonitor
public SimpleServiceMonitor()
Construct a SimpleServiceMonitor with the default interval to check that the registered services are running (DEFAULT_WAIT_MILLIS).
-
SimpleServiceMonitor
public SimpleServiceMonitor(long cWaitMillis)
Construct a SimpleServiceMonitor with the provided interval to check that the registered services are running.- Parameters:
cWaitMillis- the number of milliseconds in between checking that the registered services are running
-
-
Method Detail
-
registerServices
public void registerServices(Map<Service,String> mapServices)
Adds a set ofServices to be monitored providing life support. If any of the services are not running they are started either via the configuredConfigurableCacheFactoryiff provided or the providedService.- Specified by:
registerServicesin interfaceServiceMonitor- Parameters:
mapServices- a map ofServices where values are non-scoped service names
-
unregisterServices
public void unregisterServices(Set<Service> setServices)
Removes the supplied set ofServices from monitoring. Note that the services are not being stopped; they are just removed from the list ofServices that are being monitored.- Specified by:
unregisterServicesin interfaceServiceMonitor- Parameters:
setServices- the set ofServices to be removed from monitoring
-
stopMonitoring
public void stopMonitoring()
Stop monitoring all registered services. Note that the services are not being stopped; they are just removed from the list ofServices that are being monitored.- Specified by:
stopMonitoringin interfaceServiceMonitor
-
isMonitoring
public boolean isMonitoring()
Returns true iff the ServiceMonitor is monitoring a number of services.- Specified by:
isMonitoringin interfaceServiceMonitor- Returns:
- returns true iff the ServiceMonitor is monitoring a number of services
-
setConfigurableCacheFactory
public void setConfigurableCacheFactory(ConfigurableCacheFactory ccf)
Set theConfigurableCacheFactoryaServiceMonitorcan operate with. Setting theConfigurableCacheFactoryshould be performed prior to registering services or requires aServiceMonitor.stopMonitoring()andServiceMonitor.registerServices(Map)call.- Specified by:
setConfigurableCacheFactoryin interfaceServiceMonitor- Parameters:
ccf- theConfigurableCacheFactoryused to start the service
-
getThread
public Thread getThread()
Return the thread used by this ServiceMonitor.- Specified by:
getThreadin interfaceServiceMonitor
-
dispose
public void dispose()
Invoked when all resources owned by the implementer can safely be released.Once disposed of the object should no longer be considered to be usable.
Note the Disposable interface is compatible with try-with-resources which will automatically invoke this method.
- Specified by:
disposein interfaceDisposable
-
start
protected void start()
Start monitoring the services.
-
monitorServices
protected void monitorServices(long cWaitMillis)
Check the service status periodically (keep alive interval), restarting any stopped services.- Parameters:
cWaitMillis- the number of milliseconds between checks
-
isDisposed
protected boolean isDisposed()
Return true if thisServiceMonitorhas been disposed via invocation ofdispose().- Returns:
- true if this monitor has been disposed
-
assertNotDisposed
protected void assertNotDisposed()
ThrowsIllegalStateExceptionif this monitor has been disposed via invocation ofdispose().- Throws:
IllegalStateException- if this monitor has been disposed
-
-