type=page
status=published
title=create-threadpool
next=create-transport.html
prev=create-system-properties.html
~~~~~~
create-threadpool
=================

[[create-threadpool-1]][[GSRFM00060]][[create-threadpool]]

create-threadpool
-----------------

adds a thread pool

[[sthref553]]

Synopsis

[source,oac_no_warn]
----
asadmin [asadmin-options] create-threadpool [--help] 
[--target target] 
[--maxthreadpoolsize maxthreadpoolsize] 
[--minthreadpoolsize minthreadpoolsize] 
[--idletimeout idletimeout] [--maxqueuesize maxqueuesize]
[--workqueues workqueues] threadpool-id
----

[[sthref554]]

Description

The `create-threadpool` subcommand creates a thread pool with the
specified name. You can specify maximum and minimum number of threads in
the pool, the quantity of messages, and the idle timeout of a thread.
The created thread pool can be used for servicing IIOP requests and for
resource adapters to service work management requests. A thread pool can
be used in multiple resource adapters.

This subcommand is supported in remote mode only.

[[sthref555]]

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.
`--target`::
  This option specifies the target on which you are creating the thread
  pool. +
  Valid values are as follows: +
  `server`;;
    Creates the thread pool for the default \{product---name} instance
    `server` and is the default value
  configuration-name;;
    Creates the thread pool for the named configuration.
  cluster-name;;
    Creates the thread pool for every instance in the cluster.
  instance-name;;
    Creates the thread pool for a particular instance.
`--maxthreadpoolsize`::
  Specifies the maximum number of threads the pool can contain. Default
  is 5.
`--minthreadpoolsize`::
  Specifies the minimum number of threads in the pool. These are created
  when the thread pool is instantiated. Default is 2.
`--idletimeout`::
  Specifies the amount of time in seconds after which idle threads are
  removed from the pool. Default is 900.
`--maxqueuesize`::
  Specifies the maximum number of messages that can be queued until
  threads are available to process them for a network listener or IIOP
  listener. A value of -1 specifies no limit. Default is 4096.
`--workqueues`::
  Do not specify this option. This option is retained for compatibility
  with earlier releases. If you specify this option, a syntax error does
  not occur. Instead, the subcommand runs successfully and displays a
  warning message that the option is ignored.

[[sthref556]]

Operands

threadpool-id::
  An ID for the work queue, for example, `threadpool-1`.

[[sthref557]]

Examples

[[GSRFM527]][[sthref558]]

Example 1   Creating a Thread Pool

This command creates a new thread pool called `threadpool-l`.

[source,oac_no_warn]
----
asadmin> create-threadpool --maxthreadpoolsize 100 
--minthreadpoolsize 20 --idletimeout 2 threadpool-1
Command create-threadpool executed successfully
----

[[sthref559]]

Exit Status

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

[[sthref560]]

See Also

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

link:delete-threadpool.html#delete-threadpool-1[`delete-threadpool`(1)],
link:list-threadpools.html#list-threadpools-1[`list-threadpools`(1)]


