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
TheSimpleServiceMonitor
starts 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 Integer
DEFAULT_WAIT_MILLIS
The default time interval by which we check the alive status.protected ConfigurableCacheFactory
m_ccf
AConfigurableCacheFactory
instance used to start the service.protected long
m_cWaitMillis
The number of milliseconds between checking the status of the services.protected boolean
m_fDisposed
Indicates that thisServiceMonitor
has been disposed.protected boolean
m_fStarted
Indicates that theServiceMonitor
has started.protected Map<Service,String>
m_mapServices
A map ofService
s to be monitored with values being non-scoped service names.protected Thread
m_thread
TheThread
we 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 void
assertNotDisposed()
ThrowsIllegalStateException
if this monitor has been disposed via invocation ofdispose()
.void
dispose()
Invoked when all resources owned by the implementer can safely be released.Thread
getThread()
Return the thread used by this ServiceMonitor.protected boolean
isDisposed()
Return true if thisServiceMonitor
has been disposed via invocation ofdispose()
.boolean
isMonitoring()
Returns true iff the ServiceMonitor is monitoring a number of services.protected void
monitorServices(long cWaitMillis)
Check the service status periodically (keep alive interval), restarting any stopped services.void
registerServices(Map<Service,String> mapServices)
Adds a set ofService
s to be monitored providing life support.void
setConfigurableCacheFactory(ConfigurableCacheFactory ccf)
Set theConfigurableCacheFactory
aServiceMonitor
can operate with.protected void
start()
Start monitoring the services.void
stopMonitoring()
Stop monitoring all registered services.void
unregisterServices(Set<Service> setServices)
Removes the supplied set ofService
s 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 theServiceMonitor
has started.
-
m_thread
protected Thread m_thread
TheThread
we are using for monitoring the services periodically.
-
m_fDisposed
protected boolean m_fDisposed
Indicates that thisServiceMonitor
has been disposed.
-
m_ccf
protected ConfigurableCacheFactory m_ccf
AConfigurableCacheFactory
instance used to start the service.
-
m_mapServices
protected Map<Service,String> m_mapServices
A map ofService
s 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 ofService
s to be monitored providing life support. If any of the services are not running they are started either via the configuredConfigurableCacheFactory
iff provided or the providedService
.- Specified by:
registerServices
in interfaceServiceMonitor
- Parameters:
mapServices
- a map ofService
s where values are non-scoped service names
-
unregisterServices
public void unregisterServices(Set<Service> setServices)
Removes the supplied set ofService
s from monitoring. Note that the services are not being stopped; they are just removed from the list ofService
s that are being monitored.- Specified by:
unregisterServices
in interfaceServiceMonitor
- Parameters:
setServices
- the set ofService
s 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 ofService
s that are being monitored.- Specified by:
stopMonitoring
in interfaceServiceMonitor
-
isMonitoring
public boolean isMonitoring()
Returns true iff the ServiceMonitor is monitoring a number of services.- Specified by:
isMonitoring
in interfaceServiceMonitor
- Returns:
- returns true iff the ServiceMonitor is monitoring a number of services
-
setConfigurableCacheFactory
public void setConfigurableCacheFactory(ConfigurableCacheFactory ccf)
Set theConfigurableCacheFactory
aServiceMonitor
can operate with. Setting theConfigurableCacheFactory
should be performed prior to registering services or requires aServiceMonitor.stopMonitoring()
andServiceMonitor.registerServices(Map)
call.- Specified by:
setConfigurableCacheFactory
in interfaceServiceMonitor
- Parameters:
ccf
- theConfigurableCacheFactory
used to start the service
-
getThread
public Thread getThread()
Return the thread used by this ServiceMonitor.- Specified by:
getThread
in 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:
dispose
in 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 thisServiceMonitor
has been disposed via invocation ofdispose()
.- Returns:
- true if this monitor has been disposed
-
assertNotDisposed
protected void assertNotDisposed()
ThrowsIllegalStateException
if this monitor has been disposed via invocation ofdispose()
.- Throws:
IllegalStateException
- if this monitor has been disposed
-
-