Oracle GlassFish Server Administration Guide Release 3.1.2 Part Number E24928-01 |
|
|
View PDF |
This chapter provides procedures for administering thread pools in the Oracle GlassFish Server 3.1.2 environment by using the asadmin
command-line utility.
The following topics are addressed here:
Instructions for accomplishing these tasks by using the Administration Console are contained in the Administration Console online help.
The Virtual Machine for the Java platform (Java Virtual Machine) or JVM machine) can support many threads of execution simultaneously. To help performance, GlassFish Server 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 GlassFish Server 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.
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:
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 GlassFish Server threads, thread starvation might occur. You can avoid this by dividing the GlassFish Server threads into different thread pools.
Ensure that the server is running.
Remote subcommands require a running server.
Create a new thread pool by using the create-threadpool
subcommand.
Information about options for the subcommand is included in this help page.
To apply your changes, restart GlassFish Server.
See To Restart a Domain.
Note:
Restart is not necessary for thread pools used by the web container.
Example 5-1 Creating a Thread Pool
This example creates threadpool-l
.
asadmin> create-threadpool --maxthreadpoolsize 100 --minthreadpoolsize 20 --idletimeout 2 --workqueues 100 threadpool-1 Command create-threadpool executed successfully
You can also view the full syntax and options of the subcommand by typing asadmin help create-threadpool
at the command line.
Use the list-threadpools
subcommand in remote mode to list the existing thread pools.
Ensure that the server is running.
Remote subcommands require a running server.
List the existing thread pools by using the list-threadpools
subcommand.
Example 5-2 Listing Thread Pools
This example lists the existing thread pools.
asadmin> list-threadpools
threadpool-1
Command list-threadpools executed successfully
You can also view the full syntax and options of the subcommand by typing asadmin help list-threadpools
at the command line.
Use the set
subcommand to update the values for a specified thread pool.
List the existing thread pools by using the list-threadpools
subcommand.
Modify the values for a thread pool by using the set
subcommand.
The thread pool is identified by its dotted name.
To apply your changes, restart GlassFish Server.
See To Restart a Domain.
Note:
Restart is not necessary for thread pools used by the web container.
Example 5-3 Updating a Thread Pool
This example sets the max-thread-pool-size
from its previous value to 8.
asadmin> set server.thread-pools.thread-pool.http-thread-pool.max-thread-pool-size=8
Command set executed successfully
You can also view the full syntax and options of the subcommand by typing asadmin help set
at the command line.
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.
Ensure that the server is running.
Remote subcommands require a running server.
List the existing thread pools by using the list-threadpools
subcommand.
Delete the specified thread pool by using the delete-threadpool
subcommand.
To apply your changes, restart GlassFish Server.
See To Restart a Domain.
Note:
Restart is not necessary for thread pools used by the web container.
Example 5-4 Deleting a Thread Pool
This example deletes threadpool-1
.
asadmin> delete-threadpool threadpool-1
Command delete-threadpool executed successfully
You can also view the full syntax and options of the subcommand by typing asadmin help delete-threadpool
at the command line.