### To create a JDBC Connection Pool

1. Select Create New JDBC Connection Pool from the right panel of the console.

   Note - You can also access the New Connection Pool page by selecting the JDBC, Connection Pools node.

2. Specify the General Settings for the Connection Pool as follows:

   - Name: Enter a logical name for the pool

   - Resource Type: Select a resource type from the drop-down menu. Choices include `javax.sql.XADataSource` (global transactions), and `java.sql.ConnectionPoolDataSource` (local transactions, possible performance improvements), `javax.sql.DataSource` (local transactions only).

   - Database vendor: Select a database vendor from the drop-down menu.

3. Click Next to continue to the next page of the Connection Pool.

4. Specify the Pool Settings as follows:

   - 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 application 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. Specify the Connection Validation as follows:

   - Connection Validation: Check the Required checkbox to enable connection validation.

   - Validation Method: The application server can validate database connections in three ways: auto-commit, metadata, and table.

     - auto-commit and metadata - The application 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 the database table that is 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 drop-down menu, 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 application server closes all connections in the pool and then reestablishes 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 ServletFilters, Lifecycle modules.

   - Non-Transactional Connections: Enable the non-transaction connections.

6. Specify the Transaction Isolation settings as follows:

   - 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. Specify the Properties Settings by adding the required name-value pairs for the properties. Because the properties vary with database vendor, consult the vendor's documentation for details.

8. Click OK to create the connection pool. The newly created connection pool appears in the Connection Pools table.