IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Sessions inactives


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 182
    Points : 66
    Points
    66
    Par défaut Sessions inactives
    Bonjour,


    Dans notre application nous lançons un traitement de clôture qui vérifie qu'il n'y a plus d'utilisateurs connectés à la base
    Nous avons eu un problème lors d'une coupure de courant sur un poste, la session est restée ouverte au niveau de la base
    Est il possible de tester une valeur dans V$SESSION ou dans une autre vue pour ignorer ces connexions ?

    Version : ORACLE 9.2.0.1
    Système d'exploitation : WINDOWS

  2. #2
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Sous Oracle, tu peux te connecter à plusieurs endroits ou au même endroits avec un utilisateur et plusieurs fois, le tout en même temps. Donc je ne comprend pas ton problème.

  3. #3
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Non, normalement, les sessions mortes (dont les process clients n'existent plus) sont automatiquement purgées par pmon et ne figurent plus dans v$session.
    Si la session figure encore dans v$session, vous n'avez aucun moyen de savoir si elle est encore utilisable ou non par le client.

    Attention : ACTIVE/INACTIVE indique simplement si il y a une requête en cours d'exécution.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    Nous avons le même problème : comment détecter qu'une session n'est plus utilisée si une coupure de courant a lieu ?

    Merci.

  5. #5
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Il faut jouer sur les timeout au niveau SQL*Net. (sqlnet.ora sur le client et/ou le serveur)

  6. #6
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    On peut aussi détecter le temps d'inaction d'une session avec la colonne v$SESSION.LAST_CALL_ET_NUMBER

    LAST_CALL_ETNUMBERIf the session STATUS is currently ACTIVE, then the value represents the elapsed time in seconds since the session has become active. If the session STATUS is currently INACTIVE, then the value represents the elapsed time in seconds since the session has become inactive.
    Et on peut aussi créer un profile Oracle spécifique qui peut déconnecter automatiquement les connections inactives avec le paramètre:

    IDLE_TIME Specify the permitted periods of continuous inactive time during a session, expressed in minutes. Long-running queries and other operations are not subject to this limit.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 19
    Points : 11
    Points
    11
    Par défaut
    Merci pour vos réponses, malheureusement ça ne m'aide pas beaucoup.
    Ce n'est pas parce qu'une session est inactive depuis un certain temps qu'elle est coupée. Nous avons des utilisateurs qui se connecte le matin et ne travaille que dans l'après midi donc leur session est inactive mais toujours présente.

    Je cherche du côté du process PMON, apparement c'est celui-ci qui 'fait le ménage'.

    Si vous avez des suggestions....


    Merci

  8. #8
    Membre éclairé Avatar de plabrevo
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 547
    Points : 670
    Points
    670
    Par défaut
    De mon point de vue, la verification faire par l'application qu'il n'y a plus d'utilisateurs connectes n'a pas de sens ni techniquement ni fonctionnellement.

    En supposant que le process commence par s'assurer qu'il n'y a pas de sessions actives au moment ou il demarre, il ne pourra pas empecher d'autres sessions d'etre initiees par la suite. C'est un premier probleme.
    En terme de process, supposons que la base de donnees heberge 100 modules pour 1000 utilisateurs, mettre 990 ou 999 utilisateurs en chomage technique pour executer la cloture de l'un des modules ne tient pas la route.
    Ensuite, fonctionnellement, un traitement de cloture est generalement initie par la cloture d'une periode. Des lors que la periode est fermee, plus aucune transaction ne sera (ne devrait etre?) permise dans la periode concernee.

Discussions similaires

  1. shell pour tuer les sessions inactives
    Par big1 dans le forum Oracle
    Réponses: 4
    Dernier message: 08/08/2006, 11h00
  2. sessions inactives après shutdown immediate
    Par big1 dans le forum Oracle
    Réponses: 1
    Dernier message: 07/08/2006, 14h18
  3. [DBA] Session Inactive
    Par tchalkost dans le forum Oracle
    Réponses: 9
    Dernier message: 04/08/2006, 15h27
  4. sessions inactive dans v$session
    Par sboffin dans le forum Oracle
    Réponses: 3
    Dernier message: 17/05/2006, 22h16
  5. [VB6] Oracle ODBC Driver et sessions inactive dans oracle
    Par sboffin dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/05/2006, 21h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo