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