type=page
status=published
title=create-managed-thread-factory
next=create-message-security-provider.html
prev=create-managed-scheduled-executor-service.html
~~~~~~

create-managed-thread-factory
=============================

[[create-managed-thread-factory-1]][[GSRFM842]][[create-managed-thread-factory]]

create-managed-thread-factory
-----------------------------

Creates a managed thread factory resource

[[sthref413]]

=== Synopsis

[source]
----
asadmin [asadmin-options] create-managed-thread-factory [--help]
[--enabled={false|true}]
[--contextinfoenabled={false|true}]
[--contextinfo={Classloader|JNDI|Security|WorkArea}]
[--threadpriority threadpriority]
[--description description]
[--property property]
[--target target]
jndi_name
----

[[sthref414]]

=== Description

The `create-managed-thread-factory` subcommand creates a managed thread
factory resource.

This subcommand is supported in remote mode only.

[[sthref415]]

=== Options

asadmin-options::
  Options for the `asadmin` utility. For information about these
  options, see the link:asadmin.html#asadmin-1m[`asadmin`(1M)] help page.
`--help`::
`-?`::
  Displays the help text for the subcommand.
`--enabled`::
  Determines whether the managed thread factory is enabled at runtime.
  The default value is `true`.
`--contextinfoenabled`::
  Determines whether container contexts are propagated to threads. If
  set to `true`, the contexts specified in the `--contextinfo` option
  are propagated. If set to `false`, no contexts are propagated and the
  `--contextinfo` option is ignored. The default value is `true`.
`--contextinfo`::
  Specifies individual container contexts to propagate to threads. Valid
  values are Classloader, JNDI, Security, and WorkArea. Values are
  specified in a comma-separated list and are case-insensitive. All
  contexts are propagated by default.
`--threadpriority`::
  Specifies the priority to assign to created threads. The default value
  is 5.
`--description`::
  Descriptive details about the resource.
`--property`::
  Optional attribute name/value pairs for configuring the resource. +
  \{product---name} does not define any additional properties for this
  resource. Moreover, this resource does not currently use any
  additional properties.
`--target`::
  Specifies the target for which you are creating the resource. Valid
  targets are:

  `server`;;
    Creates the resource for the default server instance. This is the
    default value.
  `domain`;;
    Creates the resource for the domain.
  cluster_name;;
    Creates the resource for every server instance in the specified
    cluster.
  instance_name;;
    Creates the resource for the specified server instance.

[[sthref416]]

=== Operands

jndi_name::
  The JNDI name of this resource.

[[sthref417]]

=== Examples

[[GSRFM843]][[sthref418]]

==== Example 1   Creating a Managed Thread Factory Resource

This example creates a managed thread factory resource named
`concurrent/myThreadFactory`.

[source]
----
asadmin> create-managed-thread-factory concurrent/myThreadFactory
Managed thread factory concurrent/myThreadFactory created successfully.
Command create-managed-thread-factory executed successfully.
----

[[sthref419]]

=== Exit Status

0::
  subcommand executed successfully
1::
  error in executing the subcommand

[[sthref420]]

=== See Also

link:asadmin.html#asadmin-1m[`asadmin`(1M)]

link:delete-managed-thread-factory.html#delete-managed-thread-factory-1[`delete-managed-thread-factory`(1)],
link:list-managed-thread-factories.html#list-managed-thread-factories-1[`list-managed-thread-factories`(1)]


