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. +
  {productName} 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)]


