je ne pense pas qu'il y a de correlation entre les deux sessions , est ce que ca ne serait pas plutot à l'ouverture de session qu'oracle "checke" les connexions mortes
je ne pense pas qu'il y a de correlation entre les deux sessions , est ce que ca ne serait pas plutot à l'ouverture de session qu'oracle "checke" les connexions mortes
A priori, c'est le background process PMON qui libère les ressources liées à une application devenue indisponible.
Par contre, je n'ai pas trouvé le paramètre d'initialisation qui permet d'agir sur la fréquence de contrôle du PMON.Process Monitor (PMON)
The process monitor (PMON) performs process recovery when a user process fails. PMON is responsible for cleaning up the database buffer cache and freeing resources that the user process was using. For example, it resets the status of the active transaction table, releases locks, and removes the process ID from the list of active processes.
PMON periodically checks the status of dispatcher and server processes, and restarts any that have died (but not any that Oracle has terminated intentionally). PMON also registers information about the instance and dispatcher processes with the network listener.
Like SMON, PMON wakes up regularly to check whether it is needed, and can be called if another process detects the need for it.
Je ne sais pas si c'est possible d'agir directement sur PMON , le paramétre donnée à Niourk devrait déclencher PMON pour effectuer ce "nettoyage"
Je suis d'accord sur le fait que normalement les sessions déconnectées devraient être killées automatiquement.
Je n'ai aps encore pu faire les trace, je regarde dans les minutes qui suivent.
Donc je reprends.
J'ai testé, et il semble que je perde mes session fantômes avec le sqlnet.expire_time = 1
Sinon, pour les traces, j'ai deux traces : uen pour une session que j'ai déconnecté brutalement (aller hop, onretire le cable) et une pour une session déconnectée proprement.
Que suis je censé voir ?
tu peux coller celle ou tu déconnecté avec violence
je veux bien mais il y'a beaucoup de texte (voir trop, je vais peut être la refaire mais en étant plus rapide à déconnecté brutalement).
Sinon, je confirme que la valeur de sqlnet.expire_time est bien en minute. Je viens de réssayer avec la valeur de 10, et ma session fantôme traîne à disparaître.
peut on mettre une valeur décimale à votre avis (genre un 0.1) ?
voilà les dernières lignes.
Je m'avance un peu, mais est ce que la ligneveut dire ce que je pense qu'elle veut dire.nstimexp: timer expired at 20-JUL-2005 17:40:53
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 nsrdr: entry nsrdr: recving a packet nsprecv: entry nsprecv: reading from transport... nttrd: entry nstimexp: entry nstimexp: timer expired at 20-JUL-2005 17:40:53 nstimset: entry nstimset: normal exit nstimexp: normal exit
Ce n'est pas pour être rabbajoie mais juste une petite remarque .
Lorsce que ce paramétre est positionnée , oracle envoie a intervale de temps régulier ( définit par ce paramétre ) un paquet vide au client
si ce dernier le renvoie alors oracle ne fait rien , sinon il détruit la session et tout les process .
Il faut bien prendre en compte tout ces paquets et la charge sur le réseau
Il existe un utilitaire permettant de meiux comprendre ce charabia
trcasst
Définitvement, mettre la valeur à 1 répoond parfaitement à mes attentes.
Par contre, est il possible de mettre une valeur du type 0.1.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager