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

Interfaces de programmation Oracle Discussion :

Problème de sessions et processes


Sujet :

Interfaces de programmation Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut Problème de sessions et processes
    Bonjour,

    Je bosse sur une appli C++ qui se connecte à une base Oracle (9.2.0.7) en utilisant les OCI.

    Dans une boucle, je fetch plusieurs fois une table donc ce qui me crée a chaque boucle une session et un process (ou thread) sur Oracle.
    Et a chaque tour je ferme bien ma session.

    Ce que je constate, c'est que mon nombre de process n'arrete pas d'augmenter jusqu'a atteindre la limite definie dans les variables d'oracle d'ou mon erreur : ORA-00020 maximum number of processes check processes number

    en faisant une requete sur les tables v$session et v$process (join sur l'addr) je vois bien que je n'ai plus aucune de mes sessions attachées à un process. Par contre la liste des process est tres importantes.

    De plus, si je quitte mon appli apres l'erreur et que je libere ma connection, je libere que la moitié des process utilisés (je passe de 500 la limite, à 270)

    Est-ce que c'est un problème de tuning Oracle ou est-ce un problème dans l'utilisation des OCI ?

    Pour info, au début j'ai essayé d'augmenter le nombre de process max mais pour moi ce n'est pas la solution.

    Merci pour vos réponses.

  2. #2
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    si le nombre de process coté serveur cela veut obligatoirement que tu oublies de fermer ou désallouer des handles dans ton code....

    Postes ton code....


    PS : le problème réside toujours à 99,99999% dans le code de l'appli et pas dans OCI...alors avant d'incriminer OCI...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    Hello,

    je ne pense pas avoir incriminié les OCI mais plus son utilisation dans mon code.

    Voici le code (désolé mais c'est de l'objective-c)
    Chaque methode mappe sur la fonction correspondante dans OCI :

    Allocation :
    [ALMOracleWrapper almOCIHandleAlloc: (dvoid **)&srvhp parent:envhp type: OCI_HTYPE_SERVER];
    [ALMOracleWrapper almOCIHandleAlloc: (dvoid **)&svchp parent:envhp type: OCI_HTYPE_SVCCTX];
    [ALMOracleWrapper almOCIServerAttach:srvhp server:theService err:errhp];
    [ALMOracleWrapper almOCIAttrSetdvoid*)svchp type:OCI_HTYPE_SVCCTX valuedvoid *)srvhp size:0 attributeType:OCI_ATTR_SERVER err:errhp];

    [ALMOracleWrapper almOCIHandleAlloc: (dvoid **)&authp parent:envhp type: OCI_HTYPE_SESSION];

    // Unicode
    [ALMOracleWrapper almOCIAttrSetdvoid*)authp type:OCI_HTYPE_SESSION value:[theUser almUCS2String] size:[theUser length]*sizeof(unichar) attributeType:OCI_ATTR_USERNAME err:errhp];

    // Unicode
    [ALMOracleWrapper almOCIAttrSetdvoid*)authp type:OCI_HTYPE_SESSION valuedvoid *)[thePassword almUCS2String] size:[thePassword length]*sizeof(unichar) attributeType:OCI_ATTR_PASSWORD err:errhp];

    [ALMOracleWrapper almOCISessionBegin:svchp session:authp err:errhp];
    [ALMOracleWrapper almOCIAttrSetdvoid*)svchp type:OCI_HTYPE_SVCCTX valuedvoid *)authp size:0 attributeType:OCI_ATTR_SESSION err:errhp];

    [ALMOracleWrapper almOCIHandleAlloc: (dvoid **)&txnhp parent:envhp type: OCI_HTYPE_TRANS];
    [ALMOracleWrapper almOCIAttrSetdvoid*)svchp type:OCI_HTYPE_SVCCTX valuedvoid *)txnhp size:0 attributeType:OCI_ATTR_TRANS err:errhp];

    Desallocation

    [ALMOracleWrapper almOCISessionEnd:svchp session:authp err:errhp];
    [ALMOracleWrapper almOCIHandleFree: (dvoid *)srvhp type: OCI_HTYPE_SERVER];
    [ALMOracleWrapper almOCIHandleFree: (dvoid *)svchp type: OCI_HTYPE_SVCCTX];
    [ALMOracleWrapper almOCIHandleFree: (dvoid *)authp type: OCI_HTYPE_SESSION];
    [ALMOracleWrapper almOCIHandleFree: (dvoid *)txnhp type: OCI_HTYPE_TRANS];

    Je passe bien dans le destructeur. Donc ce que j'ai alloué a bien été desalloué.

    Et si je regarde ce qui se passe au niveau Process et Session dans oracle (vues v$process et v$session), je n'ai plus les sessions que j'ai crée mais il me reste un grand nombre de process.

    Ce que je remarque en regardant les samples OCI, c'est que je ne me dettache pas du serveur (OCIServerDetach)

    Je vais essayer cela mais si quelqu'un a une autre idée, il est le bienvenu

  4. #4
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    si tu n'appelles pas OCIServerDetach(), c'est normal !!

    Il faut absolument appeler OCIServerDetach() !
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 3
    Par défaut
    Merci ca confirme mon doute.

    J'ai essayé et ca fonctionne correctement.

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

Discussions similaires

  1. [Servlets - JSP] Problème de session
    Par the java lover dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 28/11/2011, 09h54
  2. Problème de session
    Par kephy dans le forum Langage
    Réponses: 11
    Dernier message: 24/11/2005, 10h08
  3. Problème de session
    Par meda dans le forum Langage
    Réponses: 13
    Dernier message: 25/10/2005, 18h25
  4. problème de session en cours
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 2
    Dernier message: 19/07/2005, 14h36
  5. Gros problème de session/cookies
    Par valfredr dans le forum XMLRAD
    Réponses: 18
    Dernier message: 03/06/2004, 09h21

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