Class TracingDaemonPool

java.lang.Object
com.oracle.coherence.grpc.proxy.TracingDaemonPool
All Implemented Interfaces:
com.tangosol.internal.util.DaemonPool, ClassLoaderAware, Controllable, Executor

public class TracingDaemonPool extends Object implements com.tangosol.internal.util.DaemonPool
A DaemonPool implementation that wraps another DaemonPool and adds activation of tracing spans for the Runnables executed by this pool.
Since:
20.06
Author:
Jonathan Knight 2020.01.10
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    protected static class 
    A Runnable that executes another runnable after activating a tracing span.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Supplier<io.opentracing.Span>
    The Supplier that will provide active spans.
    protected final com.tangosol.internal.util.DaemonPool
    The DaemonPool to delegate to.

    Fields inherited from interface com.tangosol.internal.util.DaemonPool

    COMMON_POOL_BUILDER_NAME
  • Constructor Summary

    Constructors
    Constructor
    Description
    TracingDaemonPool(com.tangosol.internal.util.DaemonPool delegate)
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    add(Runnable task)
    Adds a Runnable task to the DaemonPool.
    void
    Configure the controllable service.
    ensureTracingDaemonPool(com.tangosol.internal.util.DaemonPool pool)
    Returns a TracingDaemonPool wrapping the specified pool.
    protected io.opentracing.Span
    Return the current active span, or try to find the span in the current Context.
    Retrieve the context ClassLoader for this object.
    protected com.tangosol.internal.util.DaemonPool
    Returns the DaemonPool to delegate to.
    com.tangosol.internal.util.DaemonPoolDependencies
    Return the external dependencies of this DaemonPool.
    boolean
    Determine whether or not the controllable service is running.
    boolean
    Determine if this DaemonPool has not made progress since the last time this method was called.
    void
    schedule(Runnable task, long cMillis)
    Schedules the specified Runnable task for execution by the DaemonPool after the specified delay.
    void
    Specify the context ClassLoader for this object.
    void
    setDependencies(com.tangosol.internal.util.DaemonPoolDependencies deps)
    Configure the external dependencies of this DaemonPool.
    void
    Stop the controllable service.
    void
    Start the controllable service.
    void
    Hard-stop the controllable service.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.tangosol.internal.util.DaemonPool

    execute, getGuardian
  • Field Details

    • f_delegate

      protected final com.tangosol.internal.util.DaemonPool f_delegate
      The DaemonPool to delegate to.
    • f_activeSpan

      protected final Supplier<io.opentracing.Span> f_activeSpan
      The Supplier that will provide active spans.
  • Constructor Details

    • TracingDaemonPool

      public TracingDaemonPool(com.tangosol.internal.util.DaemonPool delegate)
      Parameters:
      delegate - the DaemonPool to delegate to
  • Method Details

    • add

      public void add(Runnable task)
      Description copied from interface: com.tangosol.internal.util.DaemonPool
      Adds a Runnable task to the DaemonPool.
      Specified by:
      add in interface com.tangosol.internal.util.DaemonPool
      Parameters:
      task - the Runnable task to execute (call the run() method of) on one of the daemon threads
    • getDependencies

      public com.tangosol.internal.util.DaemonPoolDependencies getDependencies()
      Description copied from interface: com.tangosol.internal.util.DaemonPool
      Return the external dependencies of this DaemonPool.
      Specified by:
      getDependencies in interface com.tangosol.internal.util.DaemonPool
      Returns:
      the external dependencies
    • setDependencies

      public void setDependencies(com.tangosol.internal.util.DaemonPoolDependencies deps)
      Description copied from interface: com.tangosol.internal.util.DaemonPool
      Configure the external dependencies of this DaemonPool.
      Specified by:
      setDependencies in interface com.tangosol.internal.util.DaemonPool
      Parameters:
      deps - the external dependencies
    • isRunning

      public boolean isRunning()
      Description copied from interface: Controllable
      Determine whether or not the controllable service is running. This method returns false before a service is started, while the service is starting, while a service is shutting down and after the service has stopped. It only returns true after completing its start processing and before beginning its shutdown processing.
      Specified by:
      isRunning in interface Controllable
      Returns:
      true if the service is running; false otherwise
    • isStuck

      public boolean isStuck()
      Description copied from interface: com.tangosol.internal.util.DaemonPool
      Determine if this DaemonPool has not made progress since the last time this method was called.
      Specified by:
      isStuck in interface com.tangosol.internal.util.DaemonPool
      Returns:
      true iff this DaemonPool has not made progress since the last time this method was called
    • schedule

      public void schedule(Runnable task, long cMillis)
      Description copied from interface: com.tangosol.internal.util.DaemonPool
      Schedules the specified Runnable task for execution by the DaemonPool after the specified delay.
      Specified by:
      schedule in interface com.tangosol.internal.util.DaemonPool
      Parameters:
      task - task to be scheduled
      cMillis - delay in milliseconds before task is to be executed by this DaemonPool
    • shutdown

      public void shutdown()
      Description copied from interface: Controllable
      Stop the controllable service. This is a controlled shut-down, and is preferred to the Controllable.stop() method.

      This method should only be called once per the life cycle of the controllable service. Calling this method for a service that has already stopped has no effect.

      Specified by:
      shutdown in interface Controllable
    • start

      public void start()
      Description copied from interface: Controllable
      Start the controllable service.

      This method should only be called once per the life cycle of the Controllable service. This method has no affect if the service is already running.

      Specified by:
      start in interface Controllable
    • stop

      public void stop()
      Description copied from interface: Controllable
      Hard-stop the controllable service. Use Controllable.shutdown() for normal service termination. Calling this method for a service that has already stopped has no effect.
      Specified by:
      stop in interface Controllable
    • configure

      public void configure(XmlElement xml)
      Description copied from interface: Controllable
      Configure the controllable service.

      This method can only be called before the controllable service is started.

      Specified by:
      configure in interface Controllable
      Parameters:
      xml - an XmlElement carrying configuration information specific to the Controllable object
    • getContextClassLoader

      public ClassLoader getContextClassLoader()
      Description copied from interface: ClassLoaderAware
      Retrieve the context ClassLoader for this object. The context ClassLoader is provided by the creator of the object for use by the object when loading classes and resources.
      Specified by:
      getContextClassLoader in interface ClassLoaderAware
      Returns:
      the context ClassLoader for this object
      See Also:
    • setContextClassLoader

      public void setContextClassLoader(ClassLoader loader)
      Description copied from interface: ClassLoaderAware
      Specify the context ClassLoader for this object. The context ClassLoader can be set when the object is created, and allows the creator to provide the appropriate class loader to be used by the object when when loading classes and resources.
      Specified by:
      setContextClassLoader in interface ClassLoaderAware
      Parameters:
      loader - the context ClassLoader for this object
    • findSpan

      protected io.opentracing.Span findSpan()
      Return the current active span, or try to find the span in the current Context.
      Returns:
      the current active span, or try to find the span in the current Context
    • getDelegate

      protected com.tangosol.internal.util.DaemonPool getDelegate()
      Returns the DaemonPool to delegate to.
      Returns:
      the DaemonPool to delegate to
    • ensureTracingDaemonPool

      public static TracingDaemonPool ensureTracingDaemonPool(com.tangosol.internal.util.DaemonPool pool)
      Returns a TracingDaemonPool wrapping the specified pool.
      Parameters:
      pool - the pool to wrap or return
      Returns:
      a TracingDaemonPool