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 :

Configuration pour le web


Sujet :

Administration Oracle

  1. #1
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut Configuration pour le web
    Bonjour à tous,
    j'ai developpé un site web en ASP.NET qui tourne sous IIS. Celui-ci accède à une base Oracle10g XE.
    Il fonctionne normalement au début mais au bout de quelques minutes, j'obtiens la message suivant :
    ORA-12520: TNS : le processus d'écoute n'a pas pu trouver de gestionnaire disponible pour le type de serveur requis
    Comment faut-il que je paramètre ma chaine de connexion à Oracle et comment faut-il que je paramètre le serveur Oracle ?
    Merci de votre aide.

  2. #2
    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
    Par défaut
    Est-ce que:
    - la base XE est locale ou distante ?
    - le service Windows OracleXETNSListener est-il démarré côté serveur (=la machine où l'instance XE est démarrée) ?

    Postez:
    - le contenu du fichier listener.ora côté serveur
    - le contenu du fichier tnsnames.ora côté client
    - le résultat des commandes SQL*Plus sur l'instance XE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    show parameter local_listener
    show parameter service_names
    - le résultat de la commande DOS:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lsnrctl services OracleXETNSListener

  3. #3
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Le serveur IIS et le serveur Oracle sont sur la meme machine.
    IIS utilise l'alias LERWEB pour se connecter à Oracle.
    TNSNames.ora :
    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
    LERWEB =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = WEB)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )
     
    XE =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = WEB)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = XE)
        )
      )
    ...
    Listener.ora :
    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
    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = PLSExtProc)
          (ORACLE_HOME = D:\oraclexe\app\oracle\product\10.2.0\server)
          (PROGRAM = extproc)
        )
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (ORACLE_HOME = D:\oraclexe\app\oracle\product\10.2.0\server)
          (PROGRAM = extproc)
        )
      )
     
    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
          (ADDRESS = (PROTOCOL = TCP)(HOST = WEB)(PORT = 1521))
        )
      )
     
    DEFAULT_SERVICE_LISTENER = (XE)
    SHOW parameter local_listener renvoie :
    local_listener string """vide"""

    SHOW parameter service_names renvoie :
    service_names string XE

    et le statut du listener est :
    TNS-01101: Impossible de trouver le nom de service OracleXETNSListener

    Le service existe bien dans Windows (j'avais pas précisé que c'était Windows, oups )

  4. #4
    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
    Par défaut
    Votre listener s'appelle en fait "listener". Quel est le résultat de la commande DOS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lsnrctl services listener

  5. #5
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Voici le résultat
    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
    LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 08-NOV. -2007 14:
    58:00
     
    Copyright (c) 1991, 2005, Oracle.  All rights reserved.
     
    Connexion Ó (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
    RÚcapitulatif services...
    Le service "CLRExtProc" comporte 1 instance(s).
      L'instance "CLRExtProc", statut UNKNOWN, comporte 1 gestionnaire(s) pour ce se
    rvice...
        Gestionnaire(s) :
          "DEDICATED" Útabli : 0 refusÚ : 0
             LOCAL SERVER
    Le service "PLSExtProc" comporte 1 instance(s).
      L'instance "PLSExtProc", statut UNKNOWN, comporte 1 gestionnaire(s) pour ce se
    rvice...
        Gestionnaire(s) :
          "DEDICATED" Útabli : 0 refusÚ : 0
             LOCAL SERVER
    Le service "XEXDB" comporte 1 instance(s).
      L'instance "xe", statut READY, comporte 1 gestionnaire(s) pour ce service...
        Gestionnaire(s) :
          "D000" Útabli : 2 refusÚ : 0 en cours : 2 max. : 1002 statut : ready
             DISPATCHER <machine: WEB, pid: 2232>
             (ADDRESS=(PROTOCOL=tcp)(HOST=WEB)(PORT=1032))
    Le service "XE_XPT" comporte 1 instance(s).
      L'instance "xe", statut READY, comporte 1 gestionnaire(s) pour ce service...
        Gestionnaire(s) :
          "DEDICATED" Útabli : 0 refusÚ : 0 statut : ready
             LOCAL SERVER
    Le service "xe" comporte 1 instance(s).
      L'instance "xe", statut READY, comporte 1 gestionnaire(s) pour ce service...
        Gestionnaire(s) :
          "DEDICATED" Útabli : 0 refusÚ : 0 statut : ready
             LOCAL SERVER
    La commande a rÚussi

  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
    Par défaut
    Tout semble correct. Le nom de service à utiliser doit être LERWEB ou XE dans la chaîne de connection. Vérifiez depuis le client avec la commande DOS:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tnsping XE
    tnsping LERWEB

  7. #7
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Le tnsping est ok.
    Tout marche bien au début mais c'est seulement après plusieurs minutes d'utilisation du site web qu'il n'accepte plus les connections.
    Je dois mettre quelque de spécial dans la ConnectionString (coté client) ?

  8. #8
    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
    Par défaut
    A priori, non.

    C'est peut-être un problème de resources de la base de données.
    Est-ce qu'il y a des erreurs dans le fichier alert de l'instance à ce moment là ?

  9. #9
    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
    Par défaut
    Il y a bug référencé sur Metalink qui peut correspondre à ce problème:

    Subject: Database Connections Are Left Open By Oracle Objects for OLE (OO4O)
    Doc ID: Note:417092.1 Type: PROBLEM
    Last Revision Date: 05-JUN-2007 Status: PUBLISHED
    Il n'y a pas de correction sur ce bug. Oracle recommende de modifier le code ASP en supprimant explicitement avec la méthode remove les OraParameters de l'objet OraDatabase.

  10. #10
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    J'ai cette connectionstring :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    connectionString="Data Source=LERWeb;Persist Security Info=True;User ID=monuser;Password=monpassword; Min Pool Size=10; Connection Lifetime=120; MAx Pool Size=30"
    Avant, j'avais une connectionString sans "Min Pool Size=10;..." et cela faisait exactement la même chose?
    Je le trouve où le fichier alert de l'instance ?

    Je viens de refaire un test. Le TNSPing fonctionne toujours meme qd j'ai le message d'erreur de connection

  11. #11
    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
    Par défaut
    Je ne connais ni .Net, ni .ASP en détail.

    Le fichier alert de l'instance est dans le répertoire désigné par le paramètre BACKGROUND_DUMP_DEST:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    show parameter background_dump_dest

  12. #12
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Citation Envoyé par pifor Voir le message
    Il y a bug référencé sur Metalink qui peut correspondre à ce problème:



    Il n'y a pas de correction sur ce bug. Oracle recommende de modifier le code ASP en supprimant explicitement avec la méthode remove les OraParameters de l'objet OraDatabase.
    Je n'ai pas de OraDatabase dans mon site web. Je suis en ASP.NET, j'utilise un SQLDatasource qui ont cette connectionString là.

  13. #13
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    En me reconnectant à SQLPlus, il me met "Connecté à une instance inactive"


    Dans le fichier alert :
    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
     
    Thu Nov 08 15:21:36 2007
    Process J000 died, see its trace file
    Thu Nov 08 15:21:36 2007
    kkjcre1p: unable to spawn jobq slave process 
    Thu Nov 08 15:21:36 2007
    Errors in file d:\oraclexe\app\oracle\admin\xe\bdump\xe_cjq0_2220.trc:
     
     
    Thu Nov 08 15:23:25 2007
    Process J000 died, see its trace file
    Thu Nov 08 15:23:25 2007
    kkjcre1p: unable to spawn jobq slave process 
    Thu Nov 08 15:23:25 2007
    Errors in file d:\oraclexe\app\oracle\admin\xe\bdump\xe_cjq0_2220.trc:

  14. #14
    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
    Par défaut
    En me reconnectant à SQLPlus, il me met "Connecté à une instance inactive"
    Est-ce que la variable d'environnement ORACLE_SID est bien postionnée à XE ?

    Que contient un fichier .trc ?

    A priori, il faut augmenter le paramètre JOB_QUEUE_PROCESSES mais je ne suis pas sûr que cela va résoudre le problème.

    Est-ce qu'il y a des erreurs dans le fichier <ORACLE_HOME>\network\log\listener.log ?

  15. #15
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Dans le fichier .trc en question :
    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
    Dump file d:\oraclexe\app\oracle\admin\xe\bdump\xe_cjq0_2220.trc
    Thu Nov 08 15:21:36 2007
    ORACLE V10.2.0.1.0 - Production vsnsta=0
    vsnsql=14 vsnxtr=3
    Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
    Windows Server 2003 Version V5.2 Service Pack 2
    CPU                 : 2 - type 586, 1 Physical Cores
    Process Affinity    : 0x00000000
    Memory (Avail/Total): Ph:467M/1023M, Ph+PgF:1840M/2469M, VA:1542M/2047M
    Instance name: xe
     
    Redo thread mounted by this instance: 1
     
    Oracle process number: 10
     
    Windows thread id: 2220, image: ORACLE.EXE (CJQ0)
     
     
    *** SERVICE NAME:(SYS$BACKGROUND) 2007-11-08 15:21:36.128
    *** SESSION ID:(41.1) 2007-11-08 15:21:36.128
    *** 2007-11-08 15:21:36.128
    Process J000 is dead (pid=1624, state=3):
    *** 2007-11-08 15:23:25.126
    Process J000 is dead (pid=1264, state=3):
    Dans le log du listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    08-NOV. -2007 15:19:46 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=XE)(CID=(PROGRAM=c:\windows\system32\inetsrv\w3wp.exe)(HOST=WEB)(USER=NETWORK?SERVICE))) * (ADDRESS=(PROTOCOL=tcp)(HOST=172.16.1.240)(PORT=1074)) * establish * XE * 12520
    TNS-12520: TNS : le processus d'écoute n'a pas pu trouver de gestionnaire disponible pour le type de serveur demandé
    08-NOV. -2007 15:19:47 * service_update * xe * 0
    08-NOV. -2007 15:20:01 * ping * 0
    Pour le Oracle_SID, j'avoue ne pas savoir comment l'afficher sous Windows.

  16. #16
    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
    Par défaut
    Pour ORACLE_SID:


  17. #17
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    JOB_QUEUE_PROCESSES = 4
    PROCESSES = 40
    et echo %Oracle_SID% ne fonctionne pas (me renvoie %Oracle_SID%)

  18. #18
    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
    Par défaut
    Essayez d'augmenter les paramètres JOB_QUEUE_PROCESSES de 4 à 10:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter system set job_queue_processes=10;
    Il faudrait aussi savoir combien de sessions peuvent être ouvertes par l'application et en déduire le bon paramètre pour PROCESSES.

  19. #19
    Membre averti
    Inscrit en
    Septembre 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 19
    Par défaut
    Citation Envoyé par pifor Voir le message
    Il faudrait aussi savoir combien de sessions peuvent être ouvertes par l'application et en déduire le bon paramètre pour PROCESSES
    Ben en fait, je ne sais pas exactement ce que fait .Net au niveau de la connection mais à mon avis, elle reste ouverte.

  20. #20
    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
    Par défaut
    Vous pouvez vérifier avec V$SESSION: la colonne LOGON_TIME donne l'heure exacte de connexion.

    Dans votre cas, il ne faut pas hésiter à augmenter JOB_QUEUE_PROCESSES et PROCESSES. Augmenter PROCESSES nécessite de redémarrer l'instance.
    Voir mon message (en anglais) sur OTN.

Discussions similaires

  1. [PC fixe] Configuration pour developpement web
    Par varex dans le forum Ordinateurs
    Réponses: 0
    Dernier message: 08/11/2010, 14h42
  2. erreur configuration pour site web
    Par michael_MS dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 18/02/2009, 22h23
  3. Réponses: 0
    Dernier message: 07/10/2007, 11h24
  4. [Web] Configurer pour mettre un site en public
    Par GLDavid dans le forum Autres Logiciels
    Réponses: 17
    Dernier message: 25/01/2006, 15h13

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