# The number of threads to keep in the pool, even if they are idle.
# If unsure follow this rule: Number of CPUs + 1
com.openexchange.threadpool.corePoolSize=3

# Starts all core threads, causing them to idly wait for work.
# This overrides the default policy of starting core threads only when new tasks are executed. 
com.openexchange.threadpool.prestartAllCoreThreads=true

# The maximum number of threads to allow in the pool.
# Default is max. integer value of 2^31 - 1 which is considered as unlimited max. number of threads.
com.openexchange.threadpool.maximumPoolSize=2147483647

# When the number of threads is greater than the core, this is the maximum
# time (in milliseconds) that excess idle threads will wait for new tasks
# before terminating.
# Default is 60000msec
com.openexchange.threadpool.keepAliveTime=60000

# The queue type to use for holding tasks before they are executed. This queue will
# hold only the tasks submitted by the execute method.
# Supported values: synchronous and linked
# A synchronous queue is an appropriate choice when "com.openexchange.threadpool.maximumPoolSize"
# is unlimited and possible rejection of tasks is allowed. A synchronous queue has no capacity,
# it rather acts as a direct hand-off of tasks to an already waiting worker thread and will deny
# the task if there is no further worker thread to process the task.
# A linked queue is an appropriate choice when "com.openexchange.threadpool.maximumPoolSize"
# is limited and rejection of tasks is prohibited. A linked queue has a (fixed) capacity to store
# submitted tasks which have to wait for a worker thread to become ready.
com.openexchange.threadpool.workQueue=synchronous

# The size of the work queue. Zero means unlimited size.
# Note: If this property is set to a value greater than zero, property "com.openexchange.threadpool.workQueue"
# is implicitly set to "linked" to accomplish a fixed-size work queue.
com.openexchange.threadpool.workQueueSize=0

# Enable/disable blocking behavior. A blocking behavior means that caller is blocked until space becomes available in working queue.
# This is useful for installation with limited capacities concerning max. number of threads and a bounded blocking work queue.
com.openexchange.threadpool.blocking=false

# The default behavior to obey when execution is blocked because the thread bounds and queue
# capacities are reached.
# Supported values: abort, caller-runs, discard
# abort: Aborts execution by throwing an appropriate exception to the caller
# caller-runs: The caller is considered to run the task if thread pool is unable to do so
# discard: The task is silently discarded. No exception is thrown.
com.openexchange.threadpool.refusedExecutionBehavior=abort
