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


13

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 à elle, puis c'est 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 cocher "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 d'IE 11, de chrome et de 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 se présente 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 plateforme

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
HOSTNAME

SYS_CONTEXT ( 'USERENV', 'DB_DOMAIN')
domaine

dbms_xdb_config.gethttpsport ()
5500

dbms_xdb_config.gethttpport ()
2200

Sortie "lsnrctl status"

    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 (Trimmed, 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

fichier hôtes Windows
(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 sur Stackexchange

Fils de discussion Reddit

Communauté Oracle


Le nom d'hôte de votre machine est-il dans DNS ou l'avez-vous ajouté à votre fichier d'hôtes?
Philᵀᴹ

Le fichier d'hôtes est vide. Vous ne savez pas exactement comment le nom d'hôte est géré, mais le réseau utilise un serveur ActiveDirectory où le serveur est enregistré avec son nom d'hôte et les serveurs DNS le reconnaissent comme tel.
Wouter

Tout cela ressemble étrangement à des problèmes / délais d'attente DNS.
Philᵀᴹ

Une idée sur la façon de déboguer, de suivre la cause exacte?
Wouter

Réponses:


2

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

à partir de l'invite de commande 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.


J'exécute tous les tests sur l'hôte db. Pinging hostname and ipaddress, et tnsping to CDB and PDB's works fine. Belle prise sur les connexions refusées! J'ai redémarré l'écouteur et utilisé l'URL hostname-EM-URL: même problème "page Web non disponible", et lsnerctl n'affiche pas encore d'entrée pour XDB. Lors de l'utilisation des charges EM ip-EM-URL (lentement) et j'obtiens une entrée XDB, mais aucune connexion refusée. Je ne sais pas quoi penser de ça, mais peut-être que ça vous fait?
Wouter

1
quelle est la sortie de ces deux commandes du conteneur db? SELECT UTL_INADDR.get_host_address from dual; SELECT UTL_INADDR.get_host_name from dual;

host_address renvoie une adresse ipv6, l'hôte renvoie le nom d'hôte en majuscules, sans le domaine attaché. J'ai également exécuté un rapport RDA, qui montrait "DNS Lookup - FAILED". De plus, Cloud Control ne s'installe pas lors de l'utilisation du nom d'hôte, mais fonctionne lors de l'utilisation de l'adresse IP. Je suis maintenant certain que c'est une sorte de problème DNS, je ne sais pas comment déboguer / analyser ...
Wouter

1

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 vérifier cela 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 adaptateurs réseau principaux 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 la différence 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)"

0

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.


Je suppose que vous voulez dire, essayez d'ajouter le numéro de port à l'URL? Dans mon article, j'ai dit que j'avais essayé http (s): // ip-address / em, mais je soupçonne que c'est une faute de frappe et je l'ai essayé avec le numéro de port. Je ne pense pas que cela se chargerait du tout sur le port par défaut (80). Quoi qu'il en soit, je n'ai aucun moyen de tester cela maintenant, car nous sommes passés d'Oracle à SQL Server et ne reviendrons jamais en arrière. Oracle n'a tout simplement aucun sens, sauf dans des environnements colossaux.
Wouter

0

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:

entrez la description de l'image ici

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

entrez la description de l'image ici

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 de drôles de problèmes 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.


-1

Vérifiez l'adresse IP du nom d'hôte dans le /etc/hostsfichier

par exemple, voici mon fichier d'hôtes

127.0.0.1       localhost
10.148.180.115  tom

tomest mon nom d'hôte et 10.148.180.115l'adresse IP de mon hôte

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.