ords default.xml values change for 2000 users

i want to change ords default.xml values to enhance performance for 2000 users. kindly guide me which values should change for 2000 users. my current ords default.xml values are

<entry key="jdbc.DriverType">thin</entry>
<entry key="jdbc.InitialLimit">3</entry>
<entry key="jdbc.MinLimit">1</entry>
<entry key="jdbc.MaxLimit">0</entry>
<entry key="jdbc.MaxStatementsLimit">10</entry>
<entry key="jdbc.InactivityTimeout">1800</entry>
<entry key="jdbc.statementTimeout">900</entry>

"2000 users" doesn't really assist when determining connection pool sizes, because 2000 could be:

  • 2000 people that log on a couple of times per day, or
  • 2000 people that uses the system every few secconds, or
  • 2000 concurrent requests at any given moment across a much larger population

Typically your choices are for sizing are going to be bound by the db server rather than the user population, eg

Lets say each ORDS request spends 20% of its time on the database, and 80% of its time elsewhere (ie, in the middle tier handling/processing etc). That means a single database core can support 5 ORDS concurrent requests, because (on average) 5 ORDS requests = 5x20% = 100% of one core.

If your database server has (say) 8 cores (and you're happy to dedicate 4 of them to ORDS) then you're effectively saying you're prepared to allow 20 concurrent ORDS requests on your db server at any given moment, and thus you'd limit the connection pool to be at most 20.

Remember, this is concurrent requests. A connection pool of size 20 (in this example) could serve hundreds or thousands of users depending on the usage model.