DB: Oracle 10g
Betriebssystem: Windows Server 2003 64-Bit
Ich frage eine Liste von Oracle-Sitzungen ab, die von Webanwendungen generiert wurden (Filter nach Programm = w3wp.exe)
select * from V$session
where UPPER(program) LIKE '%W3%'
order by logon_time
Warum sind laut Logon_Time noch Sitzungen vom 31.07.2012 oder 01.08.2012 oder eine Sitzung vor dem heutigen Tag (21.08.2012) aktiv?
Ich habe auf sqlnet.ora konfiguriert: SQLNET.EXPIRE_TIME = 20 Das bedeutet, dass Oracle alle 20 Minuten überprüft, ob noch Verbindungen aktiv sind.
Alle Benutzerschemata haben ein Standardprofil. Es würde bedeuten, dass keine Sitzung nie abgelaufen wäre oder sterben würde?
Als Antwort auf Phils Kommentar hinzugefügt:
Als Antwort auf Phils Antwort hinzugefügt:
oracle
oracle-10g
Del monte
quelle
quelle
v$session.PREV_EXEC_START
für diese Sitzungen? Ich vermute, dass sie Teil eines Verbindungspools sind und daher nicht im Leerlauf sind, weil sie häufig verwendet werden.INACTIVE
Bedeutet lediglich, dass keine SQL-Anweisung zum exakten Zeitpunkt Ihrer Überprüfung ausgeführt wirdv$session
. Wenn sie Teil eines Verbindungspools sind, erledigen sie ihre Arbeit ordnungsgemäß. Der springende Punkt beim Verbindungspooling ist es, viele An- und Abmeldungen zu vermeiden und dauerhafte Sitzungen für einen schnellen Start aufrechtzuerhalten (viel mehr Overhead beim erneuten Anmelden) nur um eine Abfrage auszuführen). Ich verstehe nicht, warum du dir darüber Sorgen machst.Antworten:
Ich vermute, dass sie Teil eines Verbindungspools sind und daher nicht im Leerlauf sind, weil sie häufig verwendet werden.
INACTIVE
inv$session
nur bedeutet , dass Sie versuchen Sie es zu genau in dem Moment ausgeführt wird , nicht eine SQL - Anweisung ist esv$session
.Wenn sie Teil eines Verbindungspools sind, erledigen sie ihre Aufgabe ordnungsgemäß, indem sie für längere Zeit angemeldet sind. Der springende Punkt beim Verbindungspooling ist es, die Notwendigkeit vieler An- und Abmeldungen zu beseitigen und dauerhafte Sitzungen für einen schnellen Abfragestart beizubehalten. Es ist ein viel größerer Aufwand für die Anmeldung erforderlich, um eine Abfrage auszuführen und die Verbindung jedes Mal zu trennen.
So rufen Sie die letzte Aktivitätszeit für jede Sitzung ab:
Ich rate davon ab, Sitzungen zu beenden, es sei denn, Sie wissen, dass dies keine Probleme auf der Anwendungsseite verursacht (z. B. wenn Sie versuchen, eine Sitzung zu verwenden, die beendet wurde).
Möglicherweise handelt es sich um einen falsch konfigurierten Verbindungspool, der nach dem Start der App Hunderte von Verbindungen herstellt. Der Verbindungspool ist möglicherweise um eine Größenordnung größer als erforderlich. Ich empfehle, sich an die Entwickler / Anwendungs-Support-Mitarbeiter zu wenden und einen Blick auf die Konfiguration des Verbindungspools zu werfen.
Nachdem Sie ein wenig recherchiert haben, ist w3wp.exe der IIS-Anwendungspoolprozess. Sie möchten mit ziemlicher Sicherheit mit Ihren IIS-Webserveradministratoren sprechen, um die Konfiguration des Verbindungspools zu erläutern.
quelle