Пул сеансов управляется на стороне клиента. Он не знает (или не контролирует), сколько сеансов позволит база данных.
Вы должны посмотреть на сервере, чтобы определить фактическое число разрешенных соединений и установить номер пула сеансов в зависимости от того, что разрешит сервер.
Ваш пул соединений не должен использовать все разрешенные соединения. Это позволит другим идентификаторам соединиться. Если у вас есть приложение, использующее USER_1, вы должны настроить пул соединений на использование некоторого количества разрешенных соединений, но оставить достаточно соединений для ... О, скажем, администратор БД для входа в систему.
- Правка -
Вероятно, процессы заканчиваются до того, как ваш пул соединений исчерпает себя.
SQL> show parameter processes
NAME TYPE VALUE
--------------------------------------------------------------------------------
processes integer 40
Это общее количество разрешенных процессов.
Теперь посмотрим, сколько из них уже используется - многие из них являются фоновыми процессами, о которых вы никогда не подумаете.
SQL> select count(*) from v$process;