web-dev-qa-db-fra.com

La page Web d'Oracle 12c Express Enterprise Manager ne se charge pas

Résumé du problème

Lorsque vous accédez à l'interface Web Oracle 12c EM Express, la page expire lorsque vous utilisez une URL comme:

  • http (s): // nom d'hôte: 5500/em
  • http (s): //hostname.domain: 5500/em

Lorsque vous utilisez une URL contenant l'adresse IP ou localhost, la page se charge, mais très très lentement (jusqu'à 5 minutes).

  • http (s): // adresse IP/em
  • http (s): // localhost/em

Lors de l'utilisation du nom d'hôte, le journal du programme d'écoute affiche des erreurs (plusieurs d'entre elles):

03-DEC-2015 11:25:33 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<ip address>%14)(PORT=52925)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
TNS-12560: TNS:protocol adapter error

Lors de l'utilisation de l'adresse IP ou de l'hôte local, le journal d'écoute ne montre aucune erreur:

03-DEC-2015 11:23:39 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<ip address>)(PORT=52902)) * handoff * http * 0

Ce problème apparaît partout sur le Web (voir les références dans le pied de page), et personne ne semble pouvoir en trouver la cause. J'ai essayé toutes les suggestions que j'ai pu trouver et j'ai listé les résultats ci-dessous. Je laisserai cette grande communauté avoir une fissure, et ensuite ce sera au support Oracle ...

Informations sur la plateforme

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • Une base de données de conteneurs multi-locataires (CDB) avec deux bases de données enfichables (PDB)
  • La gestion automatique du stockage (ASM) n'est pas utilisée
  • Effectuer des tests localement sur le serveur, avec le pare-feu complètement désactivé

Tests déjà effectués

emctl
Beaucoup de gens suggèrent de vérifier "emctl" par habitude. Cela n'existe pas pour 12c, car il utilise EM Express et non le contrôle de base de données.

http/https
J'ai configuré et testé cela pour http et https. Aucune différence.

Navigateur
J'ai testé cela dans des installations Vanilla de IE 11, chrome et firefox. Aucun module complémentaire activé.

Accès à la base de données
Les CDB et PDB sont accessibles et les requêtes via SQLPlus

Telnet
L'ouverture des connexions Telnet aux ports (par exemple 5500) fonctionne.

Journal des alertes
Le journal des alertes Oracle ne contient aucun message d'erreur.

Mes hypothèses

  • Quelque chose lié à la recherche de nom d'hôte, car il fonctionne -seulement- lors de l'utilisation de l'adresse IP au lieu du nom d'hôte.
  • Quelque chose lié au certificat, bien que le même problème apparaisse pour http.
  • Quelque chose lié à la configuration du service XDB ou du service d'écoute.
  • Quelque chose lié à la partie de domaine du nom d'hôte incluse ou non. Comme cela est ajouté dans la plupart des fichiers de configuration, mais peut-être pas partout?

Informations détaillées sur la plate-forme

Remarque: Dans ces extraits, j'ai toujours remplacé le nom d'hôte réel par "HOSTNAME" et le domaine réel par "domain". Si "HOSTNAME" est utilisé, cela signifie qu'il n'a pas été suivi par le nom de domaine. Le cas représente le cas réel dans lequel le nom d'hôte est affiché.

SYS_CONTEXT ('USERENV', 'SERVER_Host')
nom d'hôte

variable de nom d'hôte dans CMD
NOM D'HÔTE

SYS_CONTEXT ('USERENV', 'DB_DOMAIN')
domaine

dbms_xdb_config.gethttpsport ()
5500

dbms_xdb_config.gethttpport ()
2200

Sortie "état lsnrctl"

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:33:12

    Copyright (c) 1991, 2014, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname.domain)(PORT=1521)))
    STATUS of the LISTENER
    ------------------------
    Alias                     listener
    Version                   TNSLSNR for 64-bit Windows: Version 12.1.0.2.0 - Production
    Start Date                03-DEC-2015 12:27:51
    Uptime                    0 days 3 hr. 5 min. 21 sec
    Trace Level               off
    Security                  ON: Local OS Authentication
    SNMP                      OFF
    Listener Parameter File   C:\Oracle\HOME\network\admin\listener.ora
    Listener Log File         C:\Oracle\diag\tnslsnr\HOSTNAME\listener\alert\log.xml
    Listening Endpoints Summary...
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=1521)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=2200))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(Host=HOSTNAME.domain)(PORT=5501))(Security=(my_wallet_directory=C:\Oracle\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
      (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(Host=HOSTNAME.domain)(PORT=5500))(Security=(my_wallet_directory=C:\Oracle\admin\ecoomdb\xdb_wallet))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
    The command completed successfully

Sortie "services lsnrctl"

    LSNRCTL for 64-bit Windows: Version 12.1.0.2.0 - Production on 03-DEC-2015 15:34:22

    Copyright (c) 1991, 2014, Oracle.  All rights reserved.

    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=HOSTNAME.domain)(PORT=1521)))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
      Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:0 refused:0
             LOCAL SERVER
    Service "bibliodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    Service "ecoomdbXDB.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "D000" established:8 refused:21 current:0 max:1022 state:ready
             DISPATCHER <machine: HOSTNAME, pid: 4040>
             (ADDRESS=(PROTOCOL=tcp)(Host=HOSTNAME.domain)(PORT=49179))
    Service "technodb.domain" has 1 instance(s).
      Instance "ecoomdb", status READY, has 1 handler(s) for this service...
        Handler(s):
          "DEDICATED" established:9 refused:0 state:ready
             LOCAL SERVER
    The command completed successfully

listener.ora

    SID_LIST_LISTENER =
      (SID_LIST =
        (SID_DESC =
          (SID_NAME = CLRExtProc)
          (Oracle_HOME = C:\Oracle\HOME)
          (PROGRAM = extproc)
          (ENVS = "EXTPROC_DLLS=ONLY:C:\Oracle\HOME\bin\oraclr12.dll")
        )
      )

    LISTENER =
      (DESCRIPTION_LIST =
        (DESCRIPTION =
          (ADDRESS = (PROTOCOL = TCP)(Host = HOSTNAME.domain)(PORT = 1521))
          (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
        )
      )

init.ora (Trim, contient également d'autres paramètres ...)

db_domain=domain
db_name="ecoomdb"
dispatchers="(PROTOCOL=TCP) (SERVICE=ecoomdbXDB)"
local_listener=LISTENER*

netstat -a
(sélection pertinente)

 TCP    0.0.0.0:1521           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5500           ECONECOOMDB1:0         LISTENING
TCP    0.0.0.0:5501           ECONECOOMDB1:0         LISTENING
TCP    [::]:5500              ECONECOOMDB1:0         LISTENING
TCP    [::]:5501              ECONECOOMDB1:0         LISTENING

Windows héberge le fichier
(ce fichier est vide)

Variables d'environnement

  • PATH contient C:\Oracle\HOME\bin
  • Oracle_HOME = C:\Oracle\HOME
  • Oracle_SID = ecoomdb

Registre HKEY_LOCAL_MACHINE\SOFTWARE\Oracle\KEY_OraDB12Home1

  • Oracle_HOME = C:\Oracle\HOME
  • Oracle_SID = ecoomdb

Questions/documents connexes et en double (sans réponse)

Ressources en ligne

Questions d'échange de pile

Threads Reddit

Communauté Oracle

13
Wouter

Qu'obtenez-vous lorsque vous exécutez ces commandes sur l'hôte db

à partir de la commande Invite ping Host ping ipaddress (Host ipaddress) tnsping tnsalias

et exécuter les services lsnrctl et voir si une ou plusieurs connexions sont refusées

si le client Oracle est installé sur la machine client (d'où vous accédez à Oracle em express)

exécutez à partir de l'invite de commandes 1) ping ipaddress (db Host ipaddress) - >> si vous obtenez une erreur, ajoutez ipaddress et le nom de domaine au fichier hosts 2) tnsping tnsalias

Éditer:

Dispatcher D000 affiche 21 connexions refusées. Vous avez un problème de réseau.

Essayez de redémarrer l'écouteur et de vous connecter à em express et de voir la sortie des services lsnrctl idéalement, les connexions refusées doivent être nulles.

2
user82397

Après avoir contacté le support Oracle, j'ai -kinda- pu comprendre ce qui se passait. Ce serveur dispose de 4 cartes réseau, 1 carte connectée au réseau et 3 cartes non configurées connectées à un stockage iSCSI. Le problème semble être dû au fait que le client Web ou le serveur EM (pas sûr ici) essaie d'envoyer la demande de page Web à la mauvaise carte.

Pour toute personne confrontée au même problème, vous pouvez le vérifier en accédant à l'URL (en utilisant le nom d'hôte.domaine) puis en vérifiant le fichier listener.log (-Oracle_base-/diag/tnslsnr/-instance-/listener/trace/listener. Journal). Pour moi, dans le message d'erreur, une adresse IP différente de l'adresse IP des cartes réseau principales du serveur a été affichée. L'adresse IP de l'un des adaptateurs réseau connectés à l'iSCSI est indiquée. En omettant les adresses IP dans mon message d'origine, je n'ai pas remarqué cette différence d'adresse IP.

18-DEC-2015 14:17:04 * http * (ADDRESS=(PROTOCOL=tcps)(Host=<NOT SERVER IP address!>%14)(PORT=62119)) * handoff * http * 12518
TNS-12518: TNS:listener could not hand off client connection
 TNS-12560: TNS:protocol adapter error

Lors de la désactivation des adaptateurs réseau supplémentaires, tout fonctionne correctement.

De plus, lorsque vous accédez à "chrome: // net-internals/# dns" dans chrome, les adresses IP des quatre adaptateurs réseau s'affichent pour mon nom d'hôte.

Apparemment, ce problème ne se produit pas lors de la navigation sur la page Web à partir d'un autre hôte. En outre, nslookup renvoie uniquement la bonne adresse IP. Il semble donc que ce ne soit pas un problème DNS, mais un problème local. Je pense que ce n'est pas une réponse complète au problème, car la désactivation des adaptateurs réseau ne peut pas être une solution finale, mais j'espère que quiconque sera confronté à ce problème à l'avenir aura "plus à faire" maintenant ...

D'où vient l'écart entre l'adresse IP renvoyée par le serveur DNS et les adresses IP utilisées par les navigateurs Web?

J'ai également apporté quelques modifications supplémentaires qui pourraient avoir influencé la solution finale, donc pour être complet, je les inclurai. Je ne sais pas si c'est pertinent ...:

  • Augmentation du paramètre de processus de la base de données de 300 à 1000
  • Modification du paramètre "répartiteurs" en ajoutant "(DISPATCHERS = 5)"
1
Wouter

J'ai eu le même problème après l'installation d'Oracle 12.2.0.1 sur Windows 2016.

J'ai d'abord découvert que TCP/IPv6 était activé, je l'ai donc désactivé.

Ensuite, j'ai essayé de suivre le numéro de note Oracle (Doc ID 1608258.1) - 12c EM Express affiche une erreur de certificat non valide dans le navigateur Web.

Cela n'a pas fonctionné non plus.

Je l'ai réparé à l'ancienne ... :)

J'ai découvert que l'utilisateur Windows Oracle_DBA (qui a ouvert une session sur le PC et utilisé pour installer Oracle 12c) n'a aucune autorisation sur les 2 fichiers sous le dossier "xdb_wallet".

Donc:

1- J'ai changé la propriété du dossier "xdb_wallet" de quoi que ce soit en Oracle_DBA:

enter image description here

2- changé la propriété des 2 fichiers (ewallet.p12, cwallet.sso) sous le dossier "xdb_wallet" de quoi que ce soit à Oracle_DBA:

enter image description here

3- J'ai recommencé l'étape 1 et vérifié que la propriété a changé pour le fichier 2.

Le site Web https: // hostname: 5500/em a bien fonctionné sur FireFox, car IE11/Win2016 a des problèmes amusants avec Flash Player.

Je ne sais pas du point de vue de la sécurité ce que cela signifie (étapes 1 à 3), ni quelles menaces pourraient se produire en raison de ces changements.

Veuillez conseiller si vous le savez.

0
Najee Ghanim

Essayez d'utiliser l'adresse IP:

http(s)://192.168.1.100:5500/em

De cette façon, vous serez sûr de frapper la liaison de la carte réseau à l'IP.

0
Brian McGinity