Skip to Main Content
  • Questions
  • DRCP default settings, why a dynamic Connection Pool size?

Breadcrumb

Question and Answer

Connor McDonald

Thanks for the question, Lars Johan.

Asked: November 04, 2022 - 12:52 pm UTC

Last updated: November 09, 2022 - 1:31 am UTC

Version: 19c

Viewed 1000+ times

You Asked

It has been stressed by Oracle, for example by The Oracle Real World Performance Team, that Dynamic Connection Pools can be a killer for database performance and should be avoided.
We therefore strive to persuade application server administrators to set up Static Connection Pools, where minSize=maxSize.

The Database Resident Connection Pool have default settings that gives a dynamic connection pool.
The default for MINSIZE = 4 and the default for MAXSIZE = 40, indicating that a Dynamic Connection Pool is advised.

https://docs.oracle.com/en/database/oracle/oracle-database/19/admin/managing-processes.html#GUID-ABBE6941-73AC-4343-B320-A1400451B44F


Why is this?
Is the DRCP so integrated with the database that a Dynamic Connection Pool is OK for DRCP?
Or should we configure DRCP with MINSIZE=MAXSIZE?

I haven't been able to find any documentation, blog posts or Whitepapers discussing this topic.

Do you have any thoughts/advice on this issue?

regards from Lars Johan

and Connor said...

We therefore strive to persuade application server administrators to set up Static Connection Pools, where minSize=maxSize


I agree and so does the real world performance team. We encourage customers to choose appropriate static sizes for connection pools (DRCP or otherwise).

However, from a software *delivery* perspective, we have a number of conflicting things we try to tackle:

1) some customers run on 2 cpu machines, some run on 200 cpu machines
2) some customers want to utilise (say) 10% of their overall server capacity for DRCP, others will want to use 90% of their capacity with DRCP
3) we want the DRCP to be a simple as possible to get customers up and running with it,

Because of (1) and (2), we can't really pick a (static) default based on (say) number of CPUs, because it will suit some but not all customers.
Because of (3), we don't want to have DRCP delivered totally unconfigured so that customer shave to set a bunch of settings to get it to work.

So we go with a compromise (a dynamic pool).

But as people become more familiar with it as they use it, we encourage static pool sizes for all the good reasons you're already aware of.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

Thank you for clearing this up. Much appreciated.

Lars Johan Ulveseth, November 07, 2022 - 7:49 am UTC

Maybe a discussion on settings for DRCP parameters could make it into the documentation? Or at least into a Whitepaper or "Best Practices" document?

I guess there will be some real world experience using DRCP by now.

At least we have this answer on AskTom now.

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database