Resumen del problema
Al navegar a la interfaz web Oracle 12c EM Express, el tiempo de espera de la página cuando se usa una URL como:
- http (s): // nombre de host: 5500 / em
- http (s): //hostname.domain: 5500 / em
Cuando se utiliza una URL que contiene la dirección IP, o localhost, la página se carga, pero muy muy lentamente (hasta 5 minutos).
- http (s): // dirección-ip / em
- http (s): // localhost / em
Cuando se usa el nombre de host, el registro de escucha muestra errores (varios de estos):
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
Cuando se usa la dirección IP o localhost, el registro de escucha no muestra errores:
03-DEC-2015 11:23:39 * http * (ADDRESS=(PROTOCOL=tcps)(HOST=<ip address>)(PORT=52902)) * handoff * http * 0
Este problema aparece en toda la web (ver referencias en el pie de página), y parece que nadie puede encontrar la causa de esto. Intenté todas las sugerencias que pude encontrar y enumeré los resultados a continuación. Dejaré que esta gran comunidad se divierta, y luego se irá al soporte de Oracle ...
Información de la plataforma
- Windows Server 2012 R2 x64
- Oracle 12.1.0.2.0
- Una base de datos de contenedor de múltiples inquilinos (CDB) con dos bases de datos conectables (PDB)
- La gestión automática de almacenamiento (ASM) no se está utilizando
- Realizar pruebas localmente en el servidor, con el firewall completamente deshabilitado
Pruebas ya realizadas
emctl
Mucha gente sugeriría marcar "emctl" por costumbre. Esto no existe para 12c, ya que utiliza EM Express y no el control de la base de datos.
http / https
que configuré y probé esto para http y https. Ninguna diferencia.
Navegador
He probado esto en instalaciones de vainilla de IE 11, Chrome y Firefox. No hay complementos habilitados.
Acceso a la base de datos Se puede acceder
tanto al CDB como al PDB y consultas a través de SQLPlus
Telnet
Abrir conexiones telnet a los puertos (por ejemplo, 5500) funciona.
Registro de alertas
El registro de alertas de Oracle no contiene ningún mensaje de error.
Mis hipótesis
- Algo relacionado con la búsqueda de nombres de host, ya que funciona -sighty- cuando se usa la dirección IP en lugar del nombre de host.
- Algo relacionado con el certificado, aunque el mismo problema aparece para http.
- Algo relacionado con la configuración de XDB o servicio de escucha.
- Algo relacionado con la parte del dominio del nombre de host que se incluye o no. Como esto se agrega en la mayoría de los archivos de configuración, ¿pero quizás no en todas partes?
Información detallada de la plataforma
Nota: En estos fragmentos, siempre he reemplazado el nombre de host real con "HOSTNAME" y el dominio real con "dominio". Si se usa "HOSTNAME", significa que no fue seguido por el nombre de dominio. El caso representa el caso real en el que se muestra el nombre de host.
SYS_CONTEXT ('USERENV', 'SERVER_HOST')
nombre de host
variable de nombre de host en CMD
HOSTNAME
SYS_CONTEXT (, 'DB_DOMAIN' 'USERENV')
de dominio
dbms_xdb_config.gethttpsport ()
5500
dbms_xdb_config.gethttpport ()
2200
Salida "estado 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
Salida de "servicios 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 ( Recortado , también contiene otras configuraciones ...)
db_domain=domain
db_name="ecoomdb"
dispatchers="(PROTOCOL=TCP) (SERVICE=ecoomdbXDB)"
local_listener=LISTENER*
netstat -a
(selección relevante)
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 file
(este archivo está vacío)
Variables de entorno
- RUTA contiene C: \ ORACLE \ HOME \ bin
- ORACLE_HOME = C: \ ORACLE \ HOME
- ORACLE_SID = ecoomdb
Registro HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB12Home1
- ORACLE_HOME = C: \ ORACLE \ HOME
- ORACLE_SID = ecoomdb
Preguntas / documentos relacionados y duplicados (sin respuesta)
Recursos en línea
Preguntas de intercambio de pila
- No se puede abrir / conectarse a Oracle 12c Enterprise Manager Express
- "No se puede mostrar la página" con Oracle 12c Enterprise Manager Database Express
- Inicie Oracle 12c Enterprise Manager en Windows 7
- ¿Cómo ejecutar ORACLE 12C EM?
- Oracle 12c Express Enterprise Manager en Centos 6.5 no es accesible
Hilos Reddit
https://www.reddit.com/r/oracle/comments/2pq7wz/oracle_12c_express_enterprise_manager/
https://www.reddit.com/r/oracle/comments/29npk2/having_trouble_getting_enterprise_manager_express/
Comunidad Oracle
- https://community.oracle.com/thread/3595774?start=0&tstart=0
- https://community.oracle.com/thread/2590962?start=0&tstart=0
- https://community.oracle.com/thread/3730316?start=0&tstart=0
- https://community.oracle.com/thread/3739356?start=0&tstart=0
- https://community.oracle.com/thread/3682977?start=0&tstart=0
Respuestas:
¿Qué obtienes cuando ejecutas estos comandos en el host db?
desde el símbolo del sistema ping host ping ipaddress (host ipaddress) tnsping tnsalias
y ejecutar servicios lsnrctl y ver si se rechaza alguna conexión
si el cliente oracle está instalado en la máquina del cliente (desde donde está accediendo a oracle em express)
ejecutar desde el símbolo del sistema 1) ping ipaddress (db host ipaddress) - >> si obtiene un error, agregue ipaddress y nombre de dominio al archivo de hosts 2) tnsping tnsalias
Editar:
Dispatcher D000 muestra 21 conexiones rechazadas. Tiene un problema de red.
Intente reiniciar el oyente y conéctese a em express y vea que la salida de los servicios lsnrctl idealmente, las conexiones rechazadas deberían ser cero.
fuente
Después de contactar al soporte de Oracle, he podido entender qué estaba pasando. Este servidor tiene 4 adaptadores de red, 1 adaptador conectado a la red y 3 adaptadores no configurados conectados a un almacenamiento iSCSI. El problema parece ser causado por el cliente web o el servidor EM (no estoy seguro aquí) al intentar enviar la solicitud de la página web al adaptador incorrecto.
Para cualquiera que tenga el mismo problema, puede verificar esto navegando a la URL (usando el nombre de host.dominio) y luego verificando el archivo listener.log (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener. Iniciar sesión). Para mí, en el mensaje de error se mostró una dirección IP diferente a la dirección IP de los adaptadores de red principales del servidor. La dirección IP de uno de los adaptadores de red conectados al iSCSI donde se muestra. Al omitir las direcciones IP en mi publicación original, no vi esta diferencia de dirección IP.
Al deshabilitar los adaptadores de red adicionales, todo funciona bien.
Además, al ir a "Chrome: // net-internals / # dns" en Chrome, las direcciones IP de los cuatro adaptadores de red aparecieron para mi nombre de host.
Aparentemente, este problema, no ocurre, al navegar a la página web desde otro host. Además, nslookup solo devuelve la dirección IP correcta. Parece que esto no es un problema de DNS, sino un problema local. Creo que esta no es una respuesta completa al problema, ya que deshabilitar los adaptadores de red no puede ser una solución final, pero espero que cualquier persona que enfrente este problema en el futuro tenga "más para continuar" ahora ...
¿De dónde proviene la discrepancia entre la dirección IP devuelta por el servidor DNS y las direcciones IP utilizadas por los navegadores web?
También he realizado algunos cambios adicionales que pueden haber influido en la solución final, por lo que para completarlos los incluiré. No estoy seguro si es relevante ...:
fuente
Intente usar la dirección IP:
De esta manera, se asegurará de presionar el enlace de la tarjeta de red a la IP.
fuente
Tuve el mismo problema después de instalar Oracle 12.2.0.1 en Windows 2016.
Primero descubrí que TCP / IPv6 estaba activado, así que lo apagué.
Luego intenté seguir el Número de nota de Oracle (Doc ID 1608258.1): 12c EM Express muestra un error de certificado no válido en el navegador web.
Tampoco funcionó.
Lo arreglé por la vieja escuela ... :)
Descubrí que el usuario de Windows Oracle_DBA (que inició sesión en la PC y solía instalar Oracle 12c) no tiene ningún permiso en los 2 archivos en la carpeta "xdb_wallet".
Entonces:
1- Cambié la propiedad de la carpeta "xdb_wallet" de lo que sea a Oracle_DBA:
2- cambió la propiedad de los 2 archivos (ewallet.p12, cwallet.sso) en la carpeta "xdb_wallet" de lo que sea a Oracle_DBA:
3- Realicé el paso 1 nuevamente y verifiqué que la propiedad cambió para el archivo 2.
El sitio web https: // hostname: 5500 / em funcionó bien en Firefox, porque IE11 / Win2016 tiene problemas divertidos con Flash Player.
No sé, desde el punto de vista de la seguridad, qué significa eso (pasos 1-3) o qué amenazas pueden ocurrir debido a esos cambios.
Por favor consejo si lo sabes.
fuente
Verifique la dirección IP para el nombre de host en el
/etc/hosts
archivopor ejemplo, el siguiente es mi archivo de hosts
tom
es mi nombre de host y10.148.180.115
es la dirección IP de mi hostfuente