3.6 Flow control
Flow control controls the number of requests processed by a system. This provides stable operation of the system even when request processing is congested. By controlling the maximum number of requests executed by a Java EE server at one time, or the number of beans to be pooled in the EJB pool, or the number of JDBC connections to be pooled in the JDBC connection pool, the load on the Java EE server can be balanced, and stable throughput can be attained.
Flow control mechanism
The following figure illustrates the flow of request processing and the flow control targets.
The table below lists the resources subject to control and the parameters to be set. The numbers in the above figure correspond to the numbers in the following table.
No. |
Resources subject to control |
Description |
Parameter to set |
---|---|---|---|
1 |
Web Server server process or server thread |
The main role of the Web Server server process or server thread is to forward requests to Java EE servers. This server process or server thread is used exclusively until request processing on Java EE servers is complete. You can change the maximum number of server process or server thread and control the maximum number of connections. One server process or server thread is allocated to one request. In addition, you can change the size of the queue where requests that cannot be processed are stored. |
|
2 |
Java EE server execution thread pool |
The Java EE server execution thread interprets requests, executes web application programs, and constructs responses. You can change the maximum number of threads, and control the maximum number of execution requests. One thread is allocated to one request. In addition, you can change the size of the queue where requests that cannot be processed are stored. |
|
3 |
EJB pool |
You can change the maximum number of beans to be pooled, and control the number of threads to be executed concurrently. One session bean is allocated to one request. Note that when the number of beans in use reaches the maximum, and a new bean is needed, the client has to wait until a bean becomes available. As a result, requests are queued. |
Maximum pool size: configs.config.configuration_name_of_the_Java_EE_server.ejb-container.max-pool-size |
4 |
JDBC connection pool |
You can control the maximum number of JDBC connections to be pooled. Note that when the number of connections in use reaches the maximum, and a new connection is needed, the client has to wait until a connection becomes available. As a result, requests are queued. |
Maximum pool size: resources.jdbc-connection-pool.JDBC_connection_pool_ID.max-pool-size |