Class SimpleServiceMonitor

java.lang.Object
com.tangosol.net.SimpleServiceMonitor
All Implemented Interfaces:
Disposable, ServiceMonitor, AutoCloseable

public class SimpleServiceMonitor extends Object implements ServiceMonitor
The SimpleServiceMonitor 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 Details

    • 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 the ServiceMonitor has started.
    • m_thread

      protected Thread m_thread
      The Thread we are using for monitoring the services periodically.
    • m_fDisposed

      protected boolean m_fDisposed
      Indicates that this ServiceMonitor has been disposed.
    • m_ccf

      protected ConfigurableCacheFactory m_ccf
      A ConfigurableCacheFactory instance used to start the service.
    • m_mapServices

      protected Map<Service,String> m_mapServices
      A map of Services 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 Details

    • 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 Details

    • registerServices

      public void registerServices(Map<Service,String> mapServices)
      Adds a set of Services to be monitored providing life support. If any of the services are not running they are started either via the configured ConfigurableCacheFactory iff provided or the provided Service.
      Specified by:
      registerServices in interface ServiceMonitor
      Parameters:
      mapServices - a map of Services where values are non-scoped service names
    • unregisterServices

      public void unregisterServices(Set<Service> setServices)
      Removes the supplied set of Services from monitoring. Note that the services are not being stopped; they are just removed from the list of Services that are being monitored.
      Specified by:
      unregisterServices in interface ServiceMonitor
      Parameters:
      setServices - the set of Services 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 of Services that are being monitored.
      Specified by:
      stopMonitoring in interface ServiceMonitor
    • isMonitoring

      public boolean isMonitoring()
      Returns true iff the ServiceMonitor is monitoring a number of services.
      Specified by:
      isMonitoring in interface ServiceMonitor
      Returns:
      returns true iff the ServiceMonitor is monitoring a number of services
    • setConfigurableCacheFactory

      public void setConfigurableCacheFactory(ConfigurableCacheFactory ccf)
      Set the ConfigurableCacheFactory a ServiceMonitor can operate with. Setting the ConfigurableCacheFactory should be performed prior to registering services or requires a ServiceMonitor.stopMonitoring() and ServiceMonitor.registerServices(Map) call.
      Specified by:
      setConfigurableCacheFactory in interface ServiceMonitor
      Parameters:
      ccf - the ConfigurableCacheFactory used to start the service
    • getThread

      public Thread getThread()
      Return the thread used by this ServiceMonitor.
      Specified by:
      getThread in interface ServiceMonitor
    • 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 interface Disposable
    • 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 this ServiceMonitor has been disposed via invocation of dispose().
      Returns:
      true if this monitor has been disposed
    • assertNotDisposed

      protected void assertNotDisposed()
      Throws IllegalStateException if this monitor has been disposed via invocation of dispose().
      Throws:
      IllegalStateException - if this monitor has been disposed