Use Database Resident Connection Pooling with Autonomous Database

Database Resident Connection Pool (DRCP) in Autonomous Database supports easier and more efficient management of open connections. Using DRCP provides you with access to a connection pool in your Autonomous Transaction Processing database that enables a significant reduction in key database resources required to support many client connections and when the database needs to scale for many simultaneous connections.

When you connect to Autonomous Database you choose one of the following depending on values specified in the tnsnames.ora configuration file:

  • A dedicated server process, which services only one user process.

  • A pooled server process, obtained from DRCP, which can service multiple user processes.

To connect with a pooled DRCP server process, do the following:

  1. Locate or obtain the tnsnames.ora you are using to connect to your Autonomous Transaction Processing database.
    See Download Client Credentials (Wallets) for more information.
  2. Modify the tnsnames.ora file to add the server type SERVER=POOLED.

    For example:

    dbname_high= (description= 
         (address=(protocol=tcps)(port=1522)(host=adw.example.oraclecloud.com))
         (connect_data=(service_name=example_high.oraclecloud.com)(SERVER=POOLED))
         (security=(ssl_server_cert_dn="CN=adw.oraclecloud.com,OU=Oracle US,O=Oracle Corporation,L=Redwood 
                                        City,ST=California,C=US")))

    When you connect with (SERVER=POOLED) specified in the tnsnames.ora file you obtain a connection from DRCP.

For Autonomous Database, note the following for working with Database Resident Connection Pools (DRCP):

  • DRCP is enabled by default; however using DRCP is optional. To choose a pooled connection specify SERVER=POOLED in tnsnames.ora. If you do not specify SERVER=POOLED, you connect with a dedicated connection.

  • You cannot start or stop DRCP.

  • Autonomous Database uses the following parameter values for DRCP. You cannot modify these parameter values:

Parameter Value Description
INACTIVITY_TIMEOUT 600

The maximum time, in seconds, the pooled server can stay idle in the pool. After this time, the server is terminated.

MAX_LIFETIME_SESSION 86400

The time, in seconds, to live for a pooled server in the pool.

MAX_THINK_TIME 300

The maximum time of inactivity, in seconds, for a client after it obtains a pooled server from the pool with no open transactions in it. After obtaining a pooled server from the pool, if the client application does not issue a database call for the time specified by MAX_THINK_TIME the pooled server is freed and the client connection is terminated.

See Using Database Resident Connection Pool for more information.