Max_Sessions - Programmer's Guide vs Oracle Doc
AB, June 10, 2021 - 4:32 pm UTC
Thank you so much for the reply, Connor.
I checked the shared programmer's guide before submitting this question. However, there is difference between the definition of max_sessions as specificed in this document vs as speciied in the Oracle Doc ID 387503.1.
The guide says that it is "Maximum number of sessions for each task thread". Whereas, the above mentioned doc ID defines it as "total number of concurrent application sessions that have used or is using extproc.".
Our tests indicate that it is working as defined in the Doc ID. For example, with the following configuration, we can at a time connect 2 sessions to the extproc. It doesn't matter that max_task_threads are set to 10:
agtctl set max_dispatchers 1 PLSExtProc
agtctl set max_task_threads 10 PLSExtProc
agtctl set max_sessions 2 PLSExtProc
Can you please share any pointers with us ? Any idea what are we missing ?
Our extproc configuration is exactly as described in the specified Doc ID.
Also, Regarding the formulas to calculate the optimum values, Any idea how to identify Y "the maximum number of connections that the system can support for each dispatcher". It depends on the OS or on H/W or on something else?
June 16, 2021 - 7:11 am UTC
I read max sessions as exactly that. Maximum number of *sessions* you can create on the database. Not "per thread" or per anything. I read it a cap of the number of extprocs that will be able to active concurrently.
For "y", it is typically an OS limit (a dispatcher is a single process).
I'm not sure if extproc dispatches appear in v$queue, but if they do, that can be monitored for excessive waits (which is an indication to add more dispatches)