## org.apache.cassandra.concurrent
Class JMXEnabledThreadPoolExecutor

    java.lang.Object
      java.util.concurrent.AbstractExecutorService
          java.util.concurrent.ThreadPoolExecutor
              org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor
                  org.apache.cassandra.concurrent.JMXEnabledThreadPoolExecutor

All Implemented Interfaces:
  java.util.concurrent.Executor, java.util.concurrent.ExecutorService, IExecutorMBean, JMXEnabledThreadPoolExecutorMBean

Direct Known Subclasses:
  JMXConfigurableThreadPoolExecutor

    public class JMXEnabledThreadPoolExecutor

extends DebuggableThreadPoolExecutor
implements JMXEnabledThreadPoolExecutorMBean

This is a wrapper class for the ScheduledThreadPoolExecutor. It provides an implementation for the afterExecute() found in the ThreadPoolExecutor class to log any unexpected Runtime Exceptions.

Nested Class Summary

Nested classes/interfaces inherited from class java.util.concurrent.ThreadPoolExecutor
`java.util.concurrent.ThreadPoolExecutor.AbortPolicy, java.util.concurrent.ThreadPoolExecutor.CallerRunsPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardOldestPolicy, java.util.concurrent.ThreadPoolExecutor.DiscardPolicy`

Field Summary

Fields inherited from class org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor
`blockingExecutionHandler, logger`

Constructor Summary
`JMXEnabledThreadPoolExecutor(int corePoolSize, int maxPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue, NamedThreadFactory threadFactory, java.lang.String jmxPath)`
`JMXEnabledThreadPoolExecutor(int corePoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue, NamedThreadFactory threadFactory, java.lang.String jmxPath)`
`JMXEnabledThreadPoolExecutor(Stage stage)`
`JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName)`
`JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName, int priority)`
`JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName, java.lang.String jmxPath)`

Method Summary
`long` `getCompletedTasks()` Get the number of completed tasks
`int` `getCurrentlyBlockedTasks()` Get the number of tasks currently blocked, waiting to be accepted by the executor (because all threads are busy and the backing queue is full).
`long` `getPendingTasks()` Get the number of tasks waiting to be executed
`int` `getTotalBlockedTasks()` Get the number of tasks that had blocked before being accepted (or rejected).
`protected void` `onFinalAccept(java.lang.Runnable task)`
`protected void` `onFinalRejection(java.lang.Runnable task)`
`protected void` `onInitialRejection(java.lang.Runnable task)`
`void` `shutdown()`
`java.util.List<java.lang.Runnable>` `shutdownNow()`

Methods inherited from class org.apache.cassandra.concurrent.DebuggableThreadPoolExecutor
`afterExecute, createWithPoolSize, logExceptionsAfterExecute`

Methods inherited from class java.util.concurrent.ThreadPoolExecutor

`allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, execute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getQueue, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated`

Methods inherited from class java.util.concurrent.AbstractExecutorService
`invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor, submit, submit, submit`

Methods inherited from class java.lang.Object
`clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Methods inherited from interface org.apache.cassandra.concurrent.IExecutorMBean
`getActiveCount`

Constructor Detail

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName)

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName,
                                        java.lang.String jmxPath)

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(java.lang.String threadPoolName,
                                        int priority)

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(int corePoolSize,
                                        long keepAliveTime,
                                        java.util.concurrent.TimeUnit unit,
                                        java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue,
                                        NamedThreadFactory threadFactory,
                                        java.lang.String jmxPath)

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(int corePoolSize,
                                        int maxPoolSize,
                                        long keepAliveTime,
                                        java.util.concurrent.TimeUnit unit,
                                        java.util.concurrent.BlockingQueue<java.lang.Runnable> workQueue,
                                        NamedThreadFactory threadFactory,
                                        java.lang.String jmxPath)

### JMXEnabledThreadPoolExecutor

    public JMXEnabledThreadPoolExecutor(Stage stage)

Method Detail

### shutdown

    public void shutdown()

  Specified by:
    `shutdown` in interface `java.util.concurrent.ExecutorService`
  Overrides:
    `shutdown` in class `java.util.concurrent.ThreadPoolExecutor`

### shutdownNow

    public java.util.List<java.lang.Runnable> shutdownNow()

  Specified by:
    `shutdownNow` in interface `java.util.concurrent.ExecutorService`
  Overrides:
    `shutdownNow` in class `java.util.concurrent.ThreadPoolExecutor`

### getCompletedTasks

    public long getCompletedTasks()

  Get the number of completed tasks

  Specified by:
    `getCompletedTasks` in interface `IExecutorMBean`

### getPendingTasks

    public long getPendingTasks()

  Get the number of tasks waiting to be executed

  Specified by:
    `getPendingTasks` in interface `IExecutorMBean`

### getTotalBlockedTasks

    public int getTotalBlockedTasks()

  Description copied from interface: `JMXEnabledThreadPoolExecutorMBean`
  Get the number of tasks that had blocked before being accepted (or rejected).

  Specified by:
    `getTotalBlockedTasks` in interface `JMXEnabledThreadPoolExecutorMBean`

### getCurrentlyBlockedTasks

    public int getCurrentlyBlockedTasks()

  Description copied from interface: `JMXEnabledThreadPoolExecutorMBean`
  Get the number of tasks currently blocked, waiting to be accepted by the executor (because all threads are busy and the backing queue is full).

  Specified by:
    `getCurrentlyBlockedTasks` in interface `JMXEnabledThreadPoolExecutorMBean`

### onInitialRejection

    protected void onInitialRejection(java.lang.Runnable task)

  Overrides:
    `onInitialRejection` in class `DebuggableThreadPoolExecutor`

### onFinalAccept

    protected void onFinalAccept(java.lang.Runnable task)

  Overrides:
    `onFinalAccept` in class `DebuggableThreadPoolExecutor`

### onFinalRejection

    protected void onFinalRejection(java.lang.Runnable task)

  Overrides:
    `onFinalRejection` in class `DebuggableThreadPoolExecutor`

Copyright © 2012 The Apache Software Foundation