DRCP stands for "Database Pooling " as opposed to "unconnected" connections
In short, using DRCP, Oracle will cache all open connections, selecting a pool from them, and will use the connections in the pool for future requests.
The purpose of this is to avoid opening new connections if some of the existing connections are available / free, and therefore to safely store database resources and retrieval time (time to open a new connection).
If all connections in the pool are used, then a new connection is automatically created (by Oracle) and added to the pool.
In unconnected connections, the connection is created and (theoretically) closed by the application requesting the database.
For example, on a static PHP page requesting a database, you always have the same scheme:
- Open database connection
- Database Queries
- Close connection to DB
And you know what your circuit will be.
Now suppose you have a dynamic PHP page (with AJAX or something else) that will only query the database if the user does some specific action, the scheme becomes unpredictable. There, DRCP can become healthy for your database, especially if you have many users and possible queries.
This quote from an official document summarizes the concept enough and when it should be used:
A database backup connection pool (DRCP) is a server connection pool common to many clients. You should use DRCP in connection pools, where the number of active connections is quite less than the number of open connections. As the number of connection pool instances that can share connections from the DRCP pool increases, the benefits of using DRCP increase. DRCP improves the scalability of the database server and decides which is related to the interconnection of the intermediate layer channels.
source share