Ik zit even met een probleem. Ik ben bezig met een opdracht waarin een aantal gebruikers mogen inloggen op een database.
Er is alleen een maximum op het aantal gebruikers. Wanneer er dan nog iemand bij komt moet er gekeken worden als een gebruiker te lang is ingelogd en geen activiteit vertoond
Dit is vrij eenvoudig te achterhalen met de volgende SQL
Select * from SYS.V_$SESSION
where USERNAME='GEBRUIKERSNAAM'
In het veld "LAST_CALL_ET" staat hoelang hij niet actief is. Nu wil ik bij een nieuwe login actie een gebruiker er uit gooien die al langer dan 15 minuten niet actief is. Ik namelijk voorkomen dat mensen de applicatie gewoon aan laten staan omdat er een maximaal aantal gebruikers op zitten. De applicatie zelf is niet intelligent genoeg om het zelf te kunnen!
Hoe clear ik de connectie van die gebruiker. Het is namelijk niet mogelijk om op een systemtabel een delete te doen. Deze zijn alleen maar raadplegen. Ik kan me niet voorstellen dat oracle geen statement heeft om een gebruiker te verwijderen uit het systeem.
Er is alleen een maximum op het aantal gebruikers. Wanneer er dan nog iemand bij komt moet er gekeken worden als een gebruiker te lang is ingelogd en geen activiteit vertoond
Dit is vrij eenvoudig te achterhalen met de volgende SQL
Select * from SYS.V_$SESSION
where USERNAME='GEBRUIKERSNAAM'
In het veld "LAST_CALL_ET" staat hoelang hij niet actief is. Nu wil ik bij een nieuwe login actie een gebruiker er uit gooien die al langer dan 15 minuten niet actief is. Ik namelijk voorkomen dat mensen de applicatie gewoon aan laten staan omdat er een maximaal aantal gebruikers op zitten. De applicatie zelf is niet intelligent genoeg om het zelf te kunnen!
Hoe clear ik de connectie van die gebruiker. Het is namelijk niet mogelijk om op een systemtabel een delete te doen. Deze zijn alleen maar raadplegen. Ik kan me niet voorstellen dat oracle geen statement heeft om een gebruiker te verwijderen uit het systeem.