type=page
status=published
title=Administering Thread Pools
next=webapps.html
prev=jvm.html
~~~~~~

= Administering Thread Pools

[[GSADG00008]][[abluc]]


[[administering-thread-pools]]
== 5 Administering Thread Pools

This chapter provides procedures for administering thread pools in the
{productName} 7 environment by using the
`asadmin` command-line utility.

The following topics are addressed here:

* link:#ggjyv[About Thread Pools]
* link:#ablud[Configuring Thread Pools]

Instructions for accomplishing these tasks by using the Administration
Console are contained in the Administration Console online help.

[[ggjyv]][[GSADG00546]][[about-thread-pools]]

=== About Thread Pools

The Virtual Machine for the Java platform (Java Virtual Machine) or JVM
machine) can support many threads of execution simultaneously. To help
performance, {productName} maintains one or more thread pools. It is
possible to assign specific thread pools to connector modules, to
network listeners, or to the Object Request Broker (ORB).

One thread pool can serve multiple connector modules and enterprise
beans. Request threads handle user requests for application components.
When {productName} receives a request, it assigns the request to a
free thread from the thread pool. The thread executes the client's
requests and returns results. For example, if the request needs to use a
system resource that is currently busy, the thread waits until that
resource is free before allowing the request to use that resource.

[[ablud]][[GSADG00547]][[configuring-thread-pools]]

=== Configuring Thread Pools

You can specify the minimum and maximum number of threads that are
reserved for requests from applications. The thread pool is dynamically
adjusted between these two values.

The following topics are addressed here:

* link:#ggkwj[To Create a Thread Pool]
* link:#giuff[To List Thread Pools]
* link:#ggkyc[To Update a Thread Pool]
* link:#ggkwy[To Delete a Thread Pool]

[[ggkwj]][[GSADG00366]][[to-create-a-thread-pool]]

==== To Create a Thread Pool

Use the `create-threadpool` subcommand in remote mode to create a thread
pool.

The minimum thread pool size that is specified signals the server to
allocate at least that many threads in reserve for application requests.
That number is increased up to the maximum thread pool size that is
specified. Increasing the number of threads available to a process
allows the process to respond to more application requests
simultaneously.

If one resource adapter or application occupies all the {productName}
threads, thread starvation might occur. You can avoid this by dividing
the {productName} threads into different thread pools.

1. Ensure that the server is running. Remote subcommands require a running server.
2. Create a new thread pool by using the
link:reference-manual/create-threadpool.html#GSRFM00060[`create-threadpool`] subcommand.
+
Information about options for the subcommand is included in this help
page.
3. To apply your changes, restart {productName}.
+
See link:domains.html#ginqj[To Restart a Domain].
+

[NOTE]
====
Restart is not necessary for thread pools used by the web container.
====


[[GSADG00162]][[giuez]]
Example 5-1 Creating a Thread Pool

This example creates `threadpool-l`.

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

[[GSADG853]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help create-threadpool` at the command line.

[[giuff]][[GSADG00367]][[to-list-thread-pools]]

==== To List Thread Pools

Use the `list-threadpools` subcommand in remote mode to list the
existing thread pools.

1. Ensure that the server is running. Remote subcommands require a running server.
2. List the existing thread pools by using the
link:reference-manual/list-threadpools.html#GSRFM00204[`list-threadpools`] subcommand.

[[GSADG00163]][[giugs]]
Example 5-2 Listing Thread Pools

This example lists the existing thread pools.

[source]
----
asadmin> list-threadpools
threadpool-1
Command list-threadpools executed successfully
----

[[GSADG854]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help list-threadpools` at the command line.

[[ggkyc]][[GSADG00368]][[to-update-a-thread-pool]]

==== To Update a Thread Pool

Use the `set` subcommand to update the values for a specified thread
pool.

1. List the existing thread pools by using the
link:reference-manual/list-threadpools.html#GSRFM00204[`list-threadpools`] subcommand.
2. Modify the values for a thread pool by using the
link:reference-manual/set.html#GSRFM00226[`set`] subcommand.
+
The thread pool is identified by its dotted name.
3. To apply your changes, restart {productName}.
+
See link:domains.html#ginqj[To Restart a Domain].
+

[NOTE]
====
Restart is not necessary for thread pools used by the web container.
====


[[GSADG00164]][[giuhc]]
Example 5-3 Updating a Thread Pool

This example sets the `max-thread-pool-size` from its previous value to
8. [source]
----
asadmin> set server.thread-pools.thread-pool.http-thread-pool.max-thread-pool-size=8
Command set executed successfully
----

[[GSADG855]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help set` at the command line.

[[ggkwy]][[GSADG00369]][[to-delete-a-thread-pool]]

==== To Delete a Thread Pool

Use the `delete-threadpool` subcommand in remote mode to delete an
existing thread pool. Deleting a thread pool will fail if that pool is
referenced by a network listener.

1. Ensure that the server is running. Remote subcommands require a running server.
2. List the existing thread pools by using the
link:reference-manual/list-threadpools.html#GSRFM00204[`list-threadpools`] subcommand.
3. Delete the specified thread pool by using the
link:reference-manual/delete-threadpool.html#GSRFM00111[`delete-threadpool`] subcommand.
4. To apply your changes, restart {productName}.
+
See link:domains.html#ginqj[To Restart a Domain].
+

[NOTE]
====
Restart is not necessary for thread pools used by the web container.
====


[[GSADG00165]][[giugt]]
Example 5-4 Deleting a Thread Pool

This example deletes `threadpool-1`.

[source]
----
asadmin> delete-threadpool threadpool-1
Command delete-threadpool executed successfully
----

[[GSADG856]]

See Also

You can also view the full syntax and options of the subcommand by
typing `asadmin help delete-threadpool` at the command line.


