managedExecutorService - Managed Executor (managedExecutorService)

Managed executor service

NameTypeDefaultDescription
idstringA unique configuration ID.
concurrencyPolicyRefA reference to top level concurrencyPolicy element (string).defaultConcurrencyPolicyConcurrency policy for tasks that are submitted to this executor. If multiple executors specify the same concurrency policy, then the policy's constraints are enforced across tasks that are submitted by the collection of executors that specify the policy.
contextServiceRefA reference to top level contextService element (string).DefaultContextServiceConfigures how context is propagated to threads
jndiNamestringJNDI name
longRunningPolicyRefA reference to top level concurrencyPolicy element (string).Concurrency policy for tasks that specify the LONGRUNNING_HINT execution property with value of 'true'. If multiple executors specify the same concurrency policy, then the policy's constraints are enforced across tasks that are submitted by the whole the collection of executors that specify the policy. If unspecified, the long running concurrency policy defaults to the executor's general concurrency policy.

concurrencyPolicy

Concurrency policy for tasks that are submitted to this executor. If multiple executors specify the same concurrency policy, then the policy's constraints are enforced across tasks that are submitted by the collection of executors that specify the policy.

NameTypeDefaultDescription
maxPolicy
  • loose
  • strict
looseIndicates whether to loosely or strictly enforce maximum concurrency for tasks that run on the task submitter's thread. Tasks can run on the task submitter's thread when using the untimed invokeAll method, or, if only invoking a single task, the untimed invokeAny method. If the run-if-queue-full attribute is configured, it is also possible for tasks to run the task submitter's thread when using the execute and submit methods. In all of these cases, this attribute determines whether or not running on the submitter's thread counts against the maximum concurrency.
loose
Maximum concurrency is loosely enforced. Tasks are allowed to run on the task submitter's thread without counting against maximum concurrency.
strict
Maximum concurrency is strictly enforced. Tasks that run on the task submitter's thread count towards maximum concurrency. This policy does not allow tasks to run on the task submitter's thread when already at maximum concurrency.
maxWaitForEnqueueA period of time with millisecond precision0Specifies the maximum duration of time to wait for enqueuing a task. If unable to enqueue the task within this interval, the task submission is subject to the run-if-queue-full policy. When the maximum wait for enqueue is updated, the update applies only to tasks submitted after that point. Tasks submissions that were already waiting for a queue position continue to wait per the previously configured value. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), seconds (s), or milliseconds (ms). For example, specify 500 milliseconds as 500ms. You can include multiple values in a single entry. For example, 1s500ms is equivalent to 1.5 seconds.
runIfQueueFullbooleanfalseApplies when using the <execute> or <submit> methods. Indicates whether or not to run the task on the submitter's thread when the queue is full and the maximum wait for enqueue was exceeded. If the maximum policy is configured to strict, the ability to run on the submitter's thread is additionally contingent on the maximum concurrency constraint. If the task cannot run on the submitter's thread, the task submission is rejected after the maximum wait for enqueue elapses.
maxint
Min: 1
Specifies the maximum number of tasks that can run simultaneously. The default is Integer.MAX_VALUE. Maximum concurrency can be updated while tasks are in progress. If the maximum concurrency is reduced below the number of concurrently running tasks, the update goes into effect gradually as in-progress tasks complete, rather than canceling them.
maxQueueSizeint
Min: 1
Specifies the maximum number of tasks that can be in the queue waiting for execution. As tasks are started, canceled, or aborted, they are removed from the queue. When the queue is at capacity and another task is submitted, the behavior is determined by the maximum wait for enqueue and run-if-queue-full attributes. To ensure that a specific number of tasks can be queued within a short interval of time, use a maximum queue size that is at least as large as that amount. The default maximum queue size is Integer.MAX_VALUE. Maximum queue size can be updated while tasks are both in progress or queued for execution. If the maximum queue size is reduced below the current number of queued tasks, the update goes into effect gradually rather than automatically canceling the excess queued tasks.
startTimeoutA period of time with millisecond precisionSpecifies the maximum amount of time that may elapse between the task submission and the task start. By default, tasks do not time out. If both a maximum wait for enqueue and a start timeout are enabled, configure the start timeout to be larger than the maximum wait for enqueue. When the start timeout is updated while in use, the new start timeout value applies to tasks submitted after the update occurs. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), seconds (s), or milliseconds (ms). For example, specify 500 milliseconds as 500ms. You can include multiple values in a single entry. For example, 1s500ms is equivalent to 1.5 seconds.

contextService

Configures how context is propagated to threads

NameTypeDefaultDescription
onError
  • IGNORE
  • WARN
  • FAIL
WARNDetermines the action to take in response to configuration errors. For example, if securityContext is configured for this contextService, but the security feature is not enabled, then onError determines whether to fail, raise a warning, or ignore the parts of the configuration which are incorrect.
IGNORE
Server will not issue any warning and error messages when it incurs a configuration error.
WARN
Server will issue warning and error messages when it incurs a configuration error.
FAIL
Server will issue a warning or error message on the first error occurrence and then stop the server.
baseContextRefA reference to top level contextService element (string).Specifies a base context service from which to inherit context that is not already defined on this context service.
jndiNamestringJNDI name

contextService > baseContext

Specifies a base context service from which to inherit context that is not already defined on this context service.

NameTypeDefaultDescription
idstringA unique configuration ID.
onError
  • IGNORE
  • WARN
  • FAIL
WARNDetermines the action to take in response to configuration errors. For example, if securityContext is configured for this contextService, but the security feature is not enabled, then onError determines whether to fail, raise a warning, or ignore the parts of the configuration which are incorrect.
IGNORE
Server will not issue any warning and error messages when it incurs a configuration error.
WARN
Server will issue warning and error messages when it incurs a configuration error.
FAIL
Server will issue a warning or error message on the first error occurrence and then stop the server.
baseContextRefA reference to top level contextService element (string).Specifies a base context service from which to inherit context that is not already defined on this context service.
jndiNamestringJNDI name

contextService > baseContext > baseContext

Specifies a base context service from which to inherit context that is not already defined on this context service.

contextService > baseContext > classloaderContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > baseContext > jeeMetadataContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > baseContext > securityContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > baseContext > syncToOSThreadContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > baseContext > zosWLMContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.
defaultTransactionClassstringASYNCBNThe Transaction Class name provided to WLM to classify work when a new WLM context is being created for non-Daemon work.
daemonTransactionClassstringASYNCDMNThe Transaction Class name provided to WLM to classify work when a new WLM context is created for Daemon work.
wlm
  • PropagateOrNew
  • New
  • Propagate
PropagateIndicates how the WLM context should be handled for non-Daemon work.
PropagateOrNew
Use the same WLM context or create a new one if no current context exists.
New
Always create a new WLM context.
Propagate
Use the same WLM Context (if one exists).

contextService > classloaderContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > jeeMetadataContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > securityContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > syncToOSThreadContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.

contextService > zosWLMContext

A unique configuration ID.

NameTypeDefaultDescription
idstringA unique configuration ID.
defaultTransactionClassstringASYNCBNThe Transaction Class name provided to WLM to classify work when a new WLM context is being created for non-Daemon work.
daemonTransactionClassstringASYNCDMNThe Transaction Class name provided to WLM to classify work when a new WLM context is created for Daemon work.
wlm
  • PropagateOrNew
  • New
  • Propagate
PropagateIndicates how the WLM context should be handled for non-Daemon work.
PropagateOrNew
Use the same WLM context or create a new one if no current context exists.
New
Always create a new WLM context.
Propagate
Use the same WLM Context (if one exists).

longRunningPolicy

Concurrency policy for tasks that specify the LONGRUNNING_HINT execution property with value of 'true'. If multiple executors specify the same concurrency policy, then the policy's constraints are enforced across tasks that are submitted by the whole the collection of executors that specify the policy. If unspecified, the long running concurrency policy defaults to the executor's general concurrency policy.

NameTypeDefaultDescription
maxPolicy
  • loose
  • strict
looseIndicates whether to loosely or strictly enforce maximum concurrency for tasks that run on the task submitter's thread. Tasks can run on the task submitter's thread when using the untimed invokeAll method, or, if only invoking a single task, the untimed invokeAny method. If the run-if-queue-full attribute is configured, it is also possible for tasks to run the task submitter's thread when using the execute and submit methods. In all of these cases, this attribute determines whether or not running on the submitter's thread counts against the maximum concurrency.
loose
Maximum concurrency is loosely enforced. Tasks are allowed to run on the task submitter's thread without counting against maximum concurrency.
strict
Maximum concurrency is strictly enforced. Tasks that run on the task submitter's thread count towards maximum concurrency. This policy does not allow tasks to run on the task submitter's thread when already at maximum concurrency.
maxWaitForEnqueueA period of time with millisecond precision0Specifies the maximum duration of time to wait for enqueuing a task. If unable to enqueue the task within this interval, the task submission is subject to the run-if-queue-full policy. When the maximum wait for enqueue is updated, the update applies only to tasks submitted after that point. Tasks submissions that were already waiting for a queue position continue to wait per the previously configured value. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), seconds (s), or milliseconds (ms). For example, specify 500 milliseconds as 500ms. You can include multiple values in a single entry. For example, 1s500ms is equivalent to 1.5 seconds.
runIfQueueFullbooleanfalseApplies when using the <execute> or <submit> methods. Indicates whether or not to run the task on the submitter's thread when the queue is full and the maximum wait for enqueue was exceeded. If the maximum policy is configured to strict, the ability to run on the submitter's thread is additionally contingent on the maximum concurrency constraint. If the task cannot run on the submitter's thread, the task submission is rejected after the maximum wait for enqueue elapses.
maxint
Min: 1
Specifies the maximum number of tasks that can run simultaneously. The default is Integer.MAX_VALUE. Maximum concurrency can be updated while tasks are in progress. If the maximum concurrency is reduced below the number of concurrently running tasks, the update goes into effect gradually as in-progress tasks complete, rather than canceling them.
maxQueueSizeint
Min: 1
Specifies the maximum number of tasks that can be in the queue waiting for execution. As tasks are started, canceled, or aborted, they are removed from the queue. When the queue is at capacity and another task is submitted, the behavior is determined by the maximum wait for enqueue and run-if-queue-full attributes. To ensure that a specific number of tasks can be queued within a short interval of time, use a maximum queue size that is at least as large as that amount. The default maximum queue size is Integer.MAX_VALUE. Maximum queue size can be updated while tasks are both in progress or queued for execution. If the maximum queue size is reduced below the current number of queued tasks, the update goes into effect gradually rather than automatically canceling the excess queued tasks.
startTimeoutA period of time with millisecond precisionSpecifies the maximum amount of time that may elapse between the task submission and the task start. By default, tasks do not time out. If both a maximum wait for enqueue and a start timeout are enabled, configure the start timeout to be larger than the maximum wait for enqueue. When the start timeout is updated while in use, the new start timeout value applies to tasks submitted after the update occurs. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), seconds (s), or milliseconds (ms). For example, specify 500 milliseconds as 500ms. You can include multiple values in a single entry. For example, 1s500ms is equivalent to 1.5 seconds.