В чем конкретно проблема?
Обычно сервер приложений среднего уровня создает пул соединений. Когда ваш код запрашивает соединение, он получает уже открытое соединение из пула, вместо того, чтобы создавать новые подключения к базе данных. Когда ваш код закрывает соединение, оно возвращается в пул, а не через физическое закрытие соединения. Это означает, что будет разумное количество соединений с базой данных, где STATUS
в V$SESSION
является «НЕАКТИВНЫМ» в любой данный момент времени. Это совершенно нормально.
Даже под нагрузкой большинство соединений с базами данных среднего уровня в большинстве случаев являются "НЕАКТИВНЫМИ". Состояние «НЕАКТИВНО» просто означает, что в момент запуска запроса сеанс не выполнял оператор SQL. Большинство соединений будут проводить большую часть своего времени, сидя в пуле соединений, ожидая, когда сеанс Java откроет их, или ожидая, пока сеанс Java сделает что-то с данными, или ожидая в сети передачи данных между компьютерами.
Вы действительно получаете ошибку (то есть ORA-00020: превышено максимальное количество процессов)? Или вас просто смущает количество записей в V$SESSION
?