JDBC Connection Pools Test

Sufficient free connections should be available in the JDBC connections pools on a SAP web application server, so that applications deployed on the server are able to communicate with the database server without any interruption. If a connection pool runs out of free connections, then application-database interactions will be adversely impacted, thereby significantly degrading application performance. This is why, it is imperative that administrators continuously track the usage of JDBC connection pools on the SAP web application server, and proactively detect the shortage of free connections in any connection pool. The JDBC Connection Pools test helps administrators in this mission! This test monitors the usage of the standalone and application portal JDBC connection pools, and accurately pinpoints the connection pool that is being over-utilized and is hence running out of free connections. The test also accurately brings out how the absence of free connections is impacting application server performance, and provides useful pointers to how this contention can be cleared.

Target of the test : A SAP NetWeaver Application Server

Agent deploying the test : An internal agent

Outputs of the test : One set of results each for the standalone and application portal JDBC connection pools.

Configurable parameters for the test
Parameter Description

Test period

How often should the test be executed

Host

Specify the server for which the test is to be configured.

Port

The port number at which the specified server listens.

UserName

This test connects to a specific SAP web application server instance, and extracts critical metrics from it. Therefore, in the UserName text box, provide a valid j2ee admin user name which the test should use for connecting to the server instance.

Password

Provide the Password that corresponds to the specified UserName.

Confirm Password

Confirm the OS Password by retyping it here.

InstanceName

Provide the name of the application server instance to which the test should connect. For example, if you specify tpp here, then the test will use the login credentials (UserName and Password) provided here to connect to an instance named TPP. To know the available server instances, use the instructions provided in Determining the Name of the SAP Web AS Instance.

ConnectorPort

This test uses the P4 protocol for connecting to the SAP web application server. Therefore, the port at which the P4 protocol listens needs to be specified as the ConnectorPort. To know how to determine the P4 port, use the procedure detailed in Determining the P4 Port.

DispatcherID

This test reports a set of metrics for the Java dispatcher that receives client requests. By default, the cluster ID  of the dispatcher is auto-discovered by the eG Enterprise. Therefore, default option is specified against this parameter. Alternately, if you wish to monitor a specific cluster ID, then you can mention that cluster ID against this parameter. To know the cluster ID of the dispatcher, follow the steps discussed in Determining the Name of the SAP Web AS Instance and P4 Protocol Port .

ServerIDs

Typically, the Java dispatcher or the ICM distributes the client requests it receives to the server processes executing on the Java component of the SAP Web AS for processing.  By default, the ServerIDs are auto-discovered by the eG Enterprise. To monitor specific server processes, specify a comma-separated list of the cluster IDs of these server processes in the ServerIDs text box. To know the cluster IDs of the server processes, follow the procedure detailed in Determining the Name of the SAP Web AS Instance and P4 Protocol Port.

Providing a comma-separated list of server process cluster IDs will ensure that these cluster IDs alone appear as the descriptors of the test. If need be, you can have server process name-cluster ID pairs appear as the test descriptors. To achieve this, the specification in the ServerIDs text box should be of the following format: Server process name:Cluster ID of the server process. For example, if the cluster ID of a server process named Server0 is 12621850, then you can specify the ServerID in the format: Server0:12621850.

Measurements made by the test
Measurement Description Measurement Unit Interpretation

Used connections

Indicates the number of connections in this pool that are currently in use.

Number

 

Free connections

Indicates the number of unused managed connections in this pool.

Number

Ideally, the value of this measure should be high.

A consistent drop in the value of this measure is indicative of excessive usage of the pool, which may result in a serious contention for free managed connections. Many connection requests

Maximum connections

Indicates the maximum number of connections from a single datasource that this pool can have.

Number

If the value of this measure is very low, it means that the Maximum Connections parameter of the connection pool has been set very low. A very low value for this measure may cause the pool to rapidly run out of connections. Many connection requests will then end up waiting for a connection to be released to use it. This in turn may result in long-winding connection queues on the application server, which may eventually choke the server. This is why, it is important that the Maximum Connections parameter is set after careful thought. Set a higher value for this parameter if the applications need to connect multiple times to the database server, or if there are many clients working with the database server simultaneously.

Open connections

Indicates the number of connections opened per application.

Number

 

Waiting requests

Indicates the number of connection requests that are waiting for connections to be released.

 

Number

 

A high value for this measure is a cause for concern, as it indicates that many requests are waiting for connections to be released. If the number of waiting requests increases steadily, the application server may choke.

The probable causes for a large number of waiting requests are as follows:

  • A low Maximum connections parameter setting; this may cause the pool to rapidly run out of connections. Many connection requests will then end up waiting for a connection to be released to use it. This in turn may result in long-winding connection queues on the application server, which may eventually choke the server. A high Maximum connections configuration may help reduce the number of waiting requests.
  • A high Maximum time to wait for connection configuration. This setting indicates the maximum time for which the clients will wait, if the Maximum connections setting is reached and there are no free connections. With a high wait time setting, requests from clients will wait longer, increasing the number of waiting requests. By reducing the Maximum time to wait for connection, you may be able to decrease the number of waiting requests.

Managed connections usage

Indicates what percentage of the maximum connection capacity of this pool, is currently in use.

Percent

A low value is desired for this measure. A value close to 100% indicates that the pool is about to run out of free connections. This is a cause for concern. Under such circumstances, you may want to increase the Maximum connections configurations of the pool, so that the pool can accommodate more connections.

Timedout connection requests

Indicates the number of failed connection requests in the last measurement period.

Number