- Configuring DRCP at DB Side without any change in Application. In this case only processes are pooled, and every time new connection is made, new session is created. This is what I've observed in previous post when I was using SQL*plus.
-
and 3. need changes in Application in code that connect to DB. I will just
quote OCI Programmers Guide:
-
Applications that use
OCISessionGet()
outside of an OCISessionPool, and specify the connection class and setpurity=SELF
will be able to reuse both DRCP pooled server processes and sessions. However, following anOCISessionRelease()
, OCI will terminate the connection to the connection broker. On the nextOCISessionGet()
call, the application will reconnect to the broker. Once it reconnects, the DRCP will assign a pooled server (and session) belonging to the connection class specified. Reconnecting, however, incurs the cost of connection establishment and re-authentication. Such applications achieve better sharing of DRCP resources (processes and sessions) but do not get the benefit of caching connections to the connection broker. -
Applications that use OCISessionPool APIs and specify the connection class and set
purity=SELF
make full use of the Database Resident Connection Pool functionality through reuse of both the pooled server process and the associated session and also getting the benefit of cached connections to the connection broker. Cached connections do not incur the cost of re-authentication onOCISessionGet()
.
-
Cheers, Paweł