Hitachi

Hitachi Application Server V10 User's Guide (For Windows® Systems)


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.

[Figure]

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.

  • Queue size:

    ListenBackLog

    HWSMaxQueueSize

  • Maximum number of concurrent connections:

    ThreadsPerChild

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.

  • Maximum number of execution threads:

    configs.config.configuration_name_of_the_Java_EE_server.thread-pools.thread-pool.thread_pool_ID.max-thread-pool-size

  • Queue size:

    configs.config.configuration_name_of_the_Java_EE_server.thread-pools.thread-pool.thread_pool_name.max-queue-size

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