sql >> Database >  >> RDS >> Oracle

Inactieve sessie in Oracle door JDBC

Wat is precies het probleem?

Normaal gesproken maakt de toepassingsserver van de middelste laag een verbindingspool. Wanneer uw code een verbinding aanvraagt, krijgt deze een reeds open verbinding van de pool in plaats van door de overhead te gaan van het spawnen van een nieuwe verbinding met de database. Wanneer uw code een verbinding sluit, wordt de verbinding teruggegeven aan de pool in plaats van de overhead van het fysiek sluiten van de verbinding. Dat betekent dat er een redelijk aantal verbindingen zal zijn met de database waar de STATUS in V$SESSION op een bepaald moment "INACTIEF" is. Dat is volkomen normaal.

Zelfs onder belasting zijn de meeste databaseverbindingen van een middelste laag meestal "INACTIEF". De status "INACTIEF" betekent alleen dat op het moment dat u de query uitvoerde, de sessie geen SQL-instructie uitvoerde. De meeste verbindingen zullen het grootste deel van hun tijd ofwel in de verbindingspool zitten, wachtend op een Java-sessie om ze te openen, ofwel wachten op de Java-sessie om iets met de gegevens te doen of wachten op het netwerk om gegevens tussen de machines over te dragen.

Krijgt u daadwerkelijk een foutmelding (bijv. ORA-00020:maximum aantal processen overschreden)? Of ben je gewoon in de war door het aantal inzendingen in V$SESSION ?




  1. Grondbeginselen van tabeluitdrukkingen, deel 2 – Afgeleide tabellen, logische overwegingen

  2. SIGN() Functie in Oracle

  3. Inleiding tot PL/SQL-pakketten in Oracle Database

  4. SQL Server Parallel Back-up Herstellen -2