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

Administration Oracle Discussion :

[10.2.0.4 on W2K3] Comment identifier les utilisateurs web


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut [10.2.0.4 on W2K3] Comment identifier les utilisateurs web
    Bonjour,
    J'ai à faire à une application web qui se connecte à une base de données.
    J'ai des problèmes de lock et je cherche à identifier l'utilisateur en cause.
    Quand je regarde v$sessions, tous les username,osuser,machine sont les même.
    Dans ce cas comment faire pour identifier l'utilisateur ?

    Remarque : sur le site "my Oracle Community Discussions", on m'a répondu que si l'application n'avait pas été développée pour transmettre ce genre d'information, alors je ne pourrais pas l'avoir.

    Merci d'avance.

    Frédéric.

  2. #2
    Membre expérimenté
    Inscrit en
    Janvier 2010
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 135
    Par défaut
    Il n'y a pas de moyen infaillible. Vous pouvez juger d'après combien de temps l'utilisateur a été ralenti et comparer avec last_call_et, consultez le SQL dernière qu'il exécuta dans sql_id.

    Voici un truc fou! Vous pouvez utiliser Process Explorer de suspendre un thread à l'intérieur du processus de oracle.exe pour voir si ce thread est relié à cette session et de reprendre le cas contraire, et d'essayer chaque thread. Dans le même temps, vous demandez à l'utilisateur de faire quelque chose pour voir si son front-end est gelé. (Don't suspend a thread corresponding to an Oracle background process. Find the threads in v$process joined with v$session.)

  3. #3
    Membre émérite Avatar de Z3phur
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2007
    Messages
    680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2007
    Messages : 680
    Par défaut
    Bonsoir,

    tu essaies d'identifier la requête qui bloque et tu remontes jusqu'au sid.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    /*
        Comment détecter les verrous (locks)
    */
     
    SELECT   /*+ choose */
             bs.username "Blocking User",
             bs.username "DB User",
             ws.username "Waiting User",
             bs.sid "SID",
             ws.sid "WSID",
             bs.sql_address "address",
             bs.sql_hash_value "Sql hash",
             bs.program "Blocking App",
             ws.program "Waiting App",
             bs.machine "Blocking Machine",
             ws.machine "Waiting Machine",
             bs.osuser "Blocking OS User",
             ws.osuser "Waiting OS User",
             bs.serial# "Serial#",
             DECODE (
                wk.TYPE,
                'MR', 'Media Recovery',
                'RT', 'Redo Thread',
                'UN', 'USER Name',
                'TX', 'Transaction',
                'TM', 'DML',
                'UL', 'PL/SQL USER LOCK',
                'DX', 'Distributed Xaction',
                'CF', 'Control FILE',
                'IS', 'Instance State',
                'FS', 'FILE SET',
                'IR', 'Instance Recovery',
                'ST', 'Disk SPACE Transaction',
                'TS', 'Temp Segment',
                'IV', 'Library Cache Invalidation',
                'LS', 'LOG START OR Switch',
                'RW', 'ROW Wait',
    'SQ', 'Sequence Number',
                'TE', 'Extend TABLE',
                'TT', 'Temp TABLE',
                wk.TYPE
             ) lock_type,
             DECODE (
                hk.lmode,
                0, 'None',
                1, 'NULL',
                2, 'ROW-S (SS)',
                3, 'ROW-X (SX)',
                4, 'SHARE',
                5, 'S/ROW-X (SSX)',
                6, 'EXCLUSIVE',
                TO_CHAR (hk.lmode)
             ) mode_held,
             DECODE (
                wk.request,
                0, 'None',
                1, 'NULL',
                2, 'ROW-S (SS)',
                3, 'ROW-X (SX)',
                4, 'SHARE',
                5, 'S/ROW-X (SSX)',
                6, 'EXCLUSIVE',
                TO_CHAR (wk.request)
             ) mode_requested,
           object_name ,
             TO_CHAR (hk.id1) lock_id1,
             TO_CHAR (hk.id2) lock_id2
    FROM     v$lock hk, v$session bs, v$lock wk, v$session ws ,  V$LOCKED_OBJECT a ,
    dba_objects b
    WHERE    hk.BLOCK = 1
    AND      hk.lmode != 0
    AND      hk.lmode != 1
    AND      wk.request != 0
    AND      wk.TYPE(+) = hk.TYPE
    AND      wk.id1(+) = hk.id1
    AND      wk.id2(+) = hk.id2
    AND      hk.sid = bs.sid(+)
    AND      wk.sid = ws.sid(+)
    AND      a.object_id=b.object_id
    AND      hk.sid=a.session_id
    ORDER BY 1;

  4. #4
    Membre confirmé
    Inscrit en
    Août 2008
    Messages
    193
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 193
    Par défaut
    pour ma part, j'ai developpé une appli avec forms 10g et j'ai ajouter une procedure (pkg) qui me permet à chaque connexion d'un user, je l'insert dans une table specifique.

    Comme ca j'ai un journal d'acces des utilisateur via le web


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 30/09/2013, 15h51
  2. comment identifier les different SQLexception
    Par muslim1987 dans le forum JDBC
    Réponses: 1
    Dernier message: 02/07/2008, 09h15
  3. [W3C] Comment identifier les "successfull controls" à la soumission d'une form?
    Par Spout dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 11/02/2008, 23h28
  4. Comment identifier un utilisateur
    Par pierrot10 dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2007, 15h16
  5. Réponses: 1
    Dernier message: 17/06/2005, 10h35

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