Die Oracle 12c Express Enterprise Manager-Webseite wird nicht geladen

13

Problemzusammenfassung

Beim Browsen zum Oracle 12c EM Express-Webinterface tritt eine Zeitüberschreitung auf, wenn eine URL wie die folgende verwendet wird:

  • http (s): // Hostname: 5500 / em
  • http (s): //hostname.domain: 5500 / em

Bei Verwendung einer URL, die die IP-Adresse oder localhost enthält, wird die Seite geladen, jedoch sehr, sehr langsam (bis zu 5 Minuten).

  • http (s): // IP-Adresse / em
  • http (s): // localhost / em

Bei Verwendung des Hostnamens werden im Listener-Protokoll Fehler angezeigt (mehrere davon):

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

Bei Verwendung der IP-Adresse oder des lokalen Hosts werden im Listener-Protokoll keine Fehler angezeigt:

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

Dieses Problem tritt im gesamten Web auf (siehe Verweise in der Fußzeile), und niemand scheint in der Lage zu sein, die Ursache dafür zu finden. Ich habe versucht, jeden Vorschlag, den ich finden konnte, und die Ergebnisse unten aufgeführt. Ich werde dieser großartigen Community eine Chance geben, und dann geht es an den Oracle-Support ...

Plattforminformationen

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • Eine Multitenant-Container-Datenbank (CDB) mit zwei Pluggable-Datenbanken (PDB)
  • Automatic Storage Management (ASM) wird nicht verwendet
  • Lokale Durchführung von Tests auf dem Server bei vollständig deaktivierter Firewall

Tests bereits durchgeführt

emctl
Viele Leute würden vorschlagen, "emctl" aus Gewohnheit zu überprüfen. Dies ist in 12c nicht vorhanden, da EM Express und nicht die Datenbanksteuerung verwendet wird.

http / https
habe ich eingerichtet und auf http und https getestet. Kein Unterschied.

Browser
Ich habe dies in Vanille-Installationen von IE 11, Chrome und Firefox getestet. Keine Add-Ons aktiviert.

Datenbankzugriff
Sowohl auf die CDB als auch auf die PDB kann über SQLPlus zugegriffen und abgefragt werden

Telnet Das
Öffnen von Telnet-Verbindungen zu den Ports (z. B. 5500) funktioniert.

Warnprotokoll
Das Oracle-Warnprotokoll enthält keine Fehlermeldungen.

Meine Hypothesen

  • Etwas im Zusammenhang mit der Suche nach Hostnamen, da dies bei Verwendung der IP-Adresse anstelle des Hostnamens problemlos funktioniert.
  • Etwas im Zusammenhang mit dem Zertifikat, obwohl das gleiche Problem bei http auftritt.
  • Etwas im Zusammenhang mit der Konfiguration des XDB- oder Listener-Dienstes.
  • Etwas im Zusammenhang mit dem Domain-Teil des Hostnamens, der enthalten ist oder nicht. Wie wird das in den meisten Konfigurationsdateien hinzugefügt, aber vielleicht nicht überall?

Detaillierte Plattforminformationen

Hinweis: In diesen Snippets habe ich immer den tatsächlichen Hostnamen durch "HOSTNAME" und die tatsächliche Domain durch "Domain" ersetzt. Wenn "HOSTNAME" verwendet wird, bedeutet dies, dass es nicht vom Domain-Namen gefolgt wurde. Der Fall stellt den tatsächlichen Fall dar, in dem der Hostname angezeigt wird.

SYS_CONTEXT ('USERENV', 'SERVER_HOST')
Hostname

Hostnamenvariable in CMD
HOSTNAME

SYS_CONTEXT ( 'USERENV', 'DB_DOMAIN')
Domain

dbms_xdb_config.gethttpsport ()
5500

dbms_xdb_config.gethttpport ()
2200

Ausgang "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

Ausgabe von "lsnrctl services"

    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 (Beschnitten, enthält auch andere Einstellungen ...)

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

netstat -a
(relevante Auswahl)

 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-Hosts-Datei
(diese Datei ist leer)

Umgebungsvariablen

  • PATH enthält C: \ ORACLE \ HOME \ bin
  • ORACLE_HOME = C: \ ORACLE \ HOME
  • ORACLE_SID = ecoomdb

Registrierung HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB12Home1

  • ORACLE_HOME = C: \ ORACLE \ HOME
  • ORACLE_SID = ecoomdb

Verwandte und doppelte (unbeantwortete) Fragen / Dokumente

Internetquellen

Stapelwechselfragen

Reddit-Threads

Oracle-Community

Wouter
quelle
Befindet sich der Hostname Ihres Computers in DNS oder haben Sie ihn Ihrer Hostdatei hinzugefügt?
Philᵀᴹ
Die hosts-Datei ist leer. Nicht sicher, wie genau der Hostname verwaltet wird, aber das Netzwerk verwendet einen Active Directory-Server, auf dem der Server mit seinem Hostnamen registriert ist, und die DNS-Server erkennen ihn als solchen.
Wouter
Das klingt verdächtig nach DNS-Problemen / Timeouts.
Philᵀᴹ
Irgendeine Idee, wie man Fehler behebt, die genaue Ursache aufspürt?
Wouter

Antworten:

2

Was bekommen Sie, wenn Sie diese Befehle auf db host ausführen?

an der Eingabeaufforderung ping host ping ipaddress (host ipaddress) tnsping tnsalias

Führen Sie lsnrctl-Dienste aus und prüfen Sie, ob eine oder mehrere Verbindungen abgelehnt wurden

Wenn Oracle Client auf dem Client-Computer installiert ist (von dem aus Sie auf Oracle EM Express zugreifen)

Führen Sie den Befehl an der Eingabeaufforderung aus. 1) ping ipaddress (db host ipaddress) - >> Wenn Sie eine Fehlermeldung erhalten, fügen Sie der Hostdatei ipaddress und domain name hinzu. 2) tnsping tnsalias

Bearbeiten:

In Dispatcher D000 werden 21 Verbindungen abgelehnt. Es liegt ein Netzwerkproblem vor.

Versuchen Sie, den Listener neu zu starten und eine Verbindung zu em express herzustellen, und sehen Sie, dass die Ausgabe der lsnrctl-Dienste idealerweise keine Verbindungen zulässt.


quelle
Ich führe alle Tests auf dem DB-Host durch. Das Pingen des Hostnamens und der IP-Adresse sowie das Senden von Daten an CDBs und PDBs funktioniert einwandfrei. Netter Fang über die verweigerten Verbindungen! Ich habe den Listener neu gestartet und den Hostnamen-EM-URL verwendet: das gleiche Problem "Webseite nicht verfügbar", und lsnerctl zeigt noch keinen Eintrag für XDB an. Bei Verwendung der ip-EM-URL wird EM (langsam) geladen und ich erhalte einen XDB-Eintrag, aber keine verweigerten Verbindungen. Ich habe keine Ahnung, was ich davon halten soll, aber vielleicht tut es dir?
Wouter
1
Was ist die Ausgabe dieser beiden Befehle aus dem Container db? SELECT UTL_INADDR.get_host_address from dual; SELECT UTL_INADDR.get_host_name from dual;
host_address gibt eine IPv6-Adresse zurück, der Host gibt den Hostnamen in Großbuchstaben zurück, ohne dass die Domäne angehängt ist. Ich habe auch einen RDA-Bericht erstellt, in dem "DNS Lookup - FAILED" angezeigt wird. Außerdem kann Cloud Control unter Verwendung des Hostnamens nicht installiert werden, funktioniert jedoch unter Verwendung der IP-Adresse. Ich bin mir jetzt sicher, dass dies eine Art DNS-Problem ist. Ich weiß nur nicht, wie ich es debuggen / analysieren soll ...
Wouter
1

Nachdem ich mich an den Oracle-Support gewandt hatte, konnte ich herausfinden, was los war. Dieser Server verfügt über 4 Netzwerkadapter, 1 Adapter, der mit dem Netzwerk verbunden ist, und 3 nicht konfigurierte Adapter, die mit einem iSCSI-Speicher verbunden sind. Das Problem scheint darauf zurückzuführen zu sein, dass der Webclient oder der EM-Server (hier nicht sicher) versucht, die Webseitenanforderung an den falschen Adapter zu senden.

Wenn Sie das gleiche Problem haben, können Sie dies überprüfen, indem Sie zur URL navigieren (mit dem Hostnamen.domain) und dann die Datei listener.log (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener) überprüfen. Log). Für mich wurde in der Fehlermeldung eine andere IP-Adresse als die IP-Adresse des Hauptnetzwerkadapters des Servers angezeigt. Die IP-Adresse eines der mit dem iSCSI verbundenen Netzwerkadapter wird angezeigt. Wenn ich die IP-Adressen in meinem ursprünglichen Beitrag weglasse, habe ich diesen IP-Adressunterschied nicht festgestellt.

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

Wenn Sie die zusätzlichen Netzwerkadapter deaktivieren, funktioniert alles einwandfrei.

Wenn ich in Chrome zu "chrome: // net-internals / # dns" gehe, werden außerdem die IP-Adressen aller vier Netzwerkadapter für meinen Hostnamen angezeigt.

Anscheinend tritt dieses Problem nicht auf, wenn Sie von einem anderen Host aus auf die Webseite navigieren. Außerdem gibt nslookup nur die richtige IP-Adresse zurück. Es scheint also, dass dies kein DNS-Problem ist, sondern ein lokales Problem. Ich denke, dies ist keine vollständige Antwort auf das Problem, da das Deaktivieren von Netzwerkadaptern keine endgültige Lösung sein kann, aber ich hoffe, dass jemand, der sich diesem Problem in Zukunft gegenübersieht, jetzt "mehr zu tun" hat ...

Woher kommt die Diskrepanz zwischen der vom DNS-Server zurückgegebenen IP-Adresse und den von Webbrowsern verwendeten IP-Adressen?

Ich habe auch einige zusätzliche Änderungen vorgenommen, die die Endlösung beeinflusst haben könnten. Der Vollständigkeit halber werde ich sie einbeziehen. Nicht sicher, ob relevant ...:

  • Der Prozessparameter der Datenbank wurde von 300 auf 1000 erhöht
  • Änderung des Parameters "Dispatcher" durch Hinzufügen von "(DISPATCHERS = 5)"
Wouter
quelle
0

Versuchen Sie es mit der IP-Adresse:

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

Auf diese Weise können Sie sicher sein, dass die Netzwerkkarte an die IP gebunden ist.

Brian McGinity
quelle
Ich nehme an, Sie meinen, versuchen Sie, die Portnummer zur URL hinzuzufügen? In meinem Post habe ich gesagt, ich habe http (s): // ip-address / em ausprobiert, aber ich vermute, dass dies ein Tippfehler ist, und ich habe es tatsächlich mit der Portnummer ausprobiert. Ich glaube nicht, dass es überhaupt über den Standardport (80) geladen würde. In beiden Fällen kann ich das jetzt nicht testen, da wir von Oracle auf SQL Server umgestellt haben und nie mehr zurückblicken werden. Oracle macht nur in kolossalen Umgebungen Sinn.
Wouter
0

Ich hatte das gleiche Problem nach der Installation von Oracle 12.2.0.1 unter Windows 2016.

Zuerst habe ich festgestellt, dass TCP / IPv6 aktiviert ist, und habe es daher deaktiviert.

Versuchen Sie es dann mit der folgenden Oracle-Hinweisnummer (Doc ID 1608258.1). 12c EM Express zeigt im Webbrowser den Fehler "Ungültiges Zertifikat" an.

Hat auch nicht funktioniert.

Ich habe es nach alter Schule repariert ... :)

Ich habe festgestellt, dass der Windows-Benutzer Oracle_DBA (der sich auf dem PC angemeldet und zur Installation von Oracle 12c verwendet hat) keine Berechtigungen für die 2 Dateien im Ordner "xdb_wallet" hat.

So:

1- Ich habe den Besitz für den Ordner "xdb_wallet" von "was auch immer" in "Oracle_DBA" geändert:

Bildbeschreibung hier eingeben

2- änderte den Besitz der 2 Dateien (ewallet.p12, cwallet.sso) unter dem Ordner "xdb_wallet" von was auch immer es war zu Oracle_DBA:

Bildbeschreibung hier eingeben

3- Ich habe Schritt 1 erneut ausgeführt und überprüft, ob sich der Besitz für die 2-Datei geändert hat.

Die Website https: // hostname: 5500 / em hat in FireFox einwandfrei funktioniert, da IE11 / Win2016 unterhaltsame Probleme mit Flash Player hat.

Ich weiß aus Sicherheitsgründen nicht, was dies bedeutet (Schritte 1-3) oder welche Bedrohungen aufgrund dieser Änderungen auftreten können.

Bitte beraten Sie, wenn Sie wissen.

Najee Ghanim
quelle
-1

Überprüfen Sie die IP-Adresse für den Hostnamen in der /etc/hostsDatei

Das Folgende ist beispielsweise meine Hosts-Datei

127.0.0.1       localhost
10.148.180.115  tom

tomist mein Hostname und 10.148.180.115die IP-Adresse für meinen Host

user123317
quelle