#### To edit a JDBC connection pool

The Edit JDBC Connection Pool page provides the means to change all of the settings for an existing pool except its name.

1. Expand the Resources, JDBC, and Connection Pools node.

2. Select the node for the pool you want to edit.

3. Edit the General Settings as follows:

   The values of the general settings depend on the specific JDBC driver that is installed. These settings are the names of classes or interfaces in the Java programming language.

   Parameter | Description
   --- | ---
   Datasource Classname | The vendor-specific class name that implements the `DataSource` and / or `XADataSource` APIs. This class is in the JDBC driver.
   Resource Type | Choices include `javax.sql.DataSource` (local transactions only), `javax.sql.XADataSource` (global transactions), and `java.sql.ConnectionPoolDataSource` (local transactions, possible performance improvements).

4. Edit the Pool Settings as follows:

   A set of physical database connections reside in the pool. When an application requests a connection, the connection is removed from the pool, and when the application releases the connection, it is returned to the pool.

   Parameter | Description
   --- | ---
   Initial and Minimum Pool Size | The minimum number of connections in the pool. This value also determines the number of connections placed in the pool when the pool is first created or when server starts.
   Maximum Pool Size | The maximum number of connections in the pool.
   Pool Resize Quantity | When the pool shrinks toward the minimum pool size it is resized in batches. This value determines the number of connections in the batch. Making this value too large delays connection recycling; making it too small will be less efficient.
   Idle Timeout | The maximum time in seconds that a connection can remain idle in the pool. After this time expires, the connection is removed from the pool.
   Max Wait Time | The amount of time the application requesting a connection will wait before getting a connection timeout. Because the default wait time is long, the application might appear to hang indefinitely.

5. Edit the Connection Validation as follows:

   Optionally, the server can validate connections before they are passed to applications. This validation allows the server to automatically reestablish database connections if the database becomes unavailable due to network failure or database server crash. Validation of connections incurs additional overhead and slightly reduces performance.

   Parameter | Description
   --- | ---
   Connection Validation | Select the Required checkbox to enable connection validation.
   Validation Method | The server can validate database connections in three ways: auto-commit, metadata, and table. auto-commit and metadata - The server validates a connection by calling the `con.getAutoCommit()` and `con.getMetaData()` methods. However, because many JDBC drivers cache the results of these calls, they do not always provide reliable validations. Check with the driver vendor to determine whether these calls are cached or not. table - The application queries a database table that are specified. The table must exist and be accessible, but it doesn't require any rows. Do not use an existing table that has a large number of rows or a table that is already frequently accessed.
   Table Name | If you selected table from the Validation Method combo box, then specify the name of the database table here.
   On Any Failure | If you select the checkbox labelled Close All Connections, if a single connection fails, then the server closes all connections in the pool and then reestablish them. If you do not select the checkbox, then individual connections are reestablished only when they are used.
   Allow Non Component Callers | Enable the pool to be used by non-component callers such as Servlet Filters and Lifecycle modules.
   Non Transactional Connections | Enable to return all non-transactional connections.

6. Edit the Transaction Isolation as follows:

   Because a database is usually accessed by many users concurrently, one transaction might update data while another attempts to read the same data. The isolation level of a transaction defines the degree to which the data being updated is visible to other transactions. For details on isolation levels, refer to the documentation of the database vendor.

   Parameter | Description
   --- | ---
   Transaction Isolation | Makes it possible to select the transaction isolation level for the connections of this pool. If left unspecified, the connections operate with default isolation levels provided by the JDBC driver.
   Isolation Level | Only applicable if the isolation level has been specified. If you select the Guaranteed checkbox, then all connections taken from the pool have the same isolation level. For example, if the isolation level for the connection is changed programmatically (with `con.setTransactionIsolation`) when last used, this mechanism changes the status back to the specified isolation level.

7. Edit the Properties.

   In the Additional Properties table, it is possible to specify properties, such as the database name (URL), user name, and password. Because the properties vary with database vendor, consult the vendor's documentation for details.

8. Click Save.