Quel est exactement le problème ?
Normalement, le serveur d'applications de niveau intermédiaire crée un pool de connexions. Lorsque votre code demande une connexion, il obtient une connexion déjà ouverte à partir du pool plutôt que de passer par la surcharge de génération d'une nouvelle connexion à la base de données. Lorsque votre code ferme une connexion, la connexion est renvoyée au pool plutôt que de passer par la surcharge de la fermeture physique de la connexion. Cela signifie qu'il y aura un nombre raisonnable de connexions à la base de données où le STATUS
dans V$SESSION
est « INACTIF » à un moment donné. C'est parfaitement normal.
Même sous charge, la plupart des connexions de base de données à partir d'un niveau intermédiaire sont "INACTIVES" la plupart du temps. Un statut "INACTIVE" signifie simplement qu'au moment où vous avez exécuté la requête, la session n'exécutait pas d'instruction SQL. La plupart des connexions passeront le plus clair de leur temps soit dans le pool de connexions à attendre qu'une session Java les ouvre, soit à attendre que la session Java fasse quelque chose avec les données, soit à attendre sur le réseau pour transférer des données entre les machines.
Obtenez-vous réellement une erreur (c'est-à-dire ORA-00020 :nombre maximal de processus dépassé) ? Ou êtes-vous simplement confus par le nombre d'entrées dans V$SESSION
?