Краткое описание проблемы
При просмотре веб-интерфейса Oracle 12c EM Express время ожидания страницы при использовании URL-адреса, например:
- HTTP (s): // имя хоста: 5500 / эм
- HTTP (S): //hostname.domain: 5500 / эм
При использовании URL-адреса, содержащего IP-адрес или localhost, страница загружается, но очень очень медленно (до 5 минут).
- HTTP (S): // IP-адрес / EM
- HTTP (s): // локальный / эм
При использовании имени хоста журнал слушателя показывает ошибки (несколько из них):
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
При использовании IP-адреса или локального хоста журнал слушателя не показывает ошибок:
03-DEC-2015 11:23:39 * http * (ADDRESS=(PROTOCOL=tcps)(HOST=<ip address>)(PORT=52902)) * handoff * http * 0
Эта проблема обнаруживается во всем Интернете (см. Ссылки в нижнем колонтитуле), и, кажется, никто не может найти причину этого. Я попробовал все предложения, которые смог найти, и перечислил результаты ниже. Я позволю этому великому сообществу разобраться с этим, а затем отправлюсь на поддержку Oracle ...
Информация о платформе
- Windows Server 2012 R2 x64
- Oracle 12.1.0.2.0
- Многопользовательская контейнерная база данных (CDB) с двумя подключаемыми базами данных (PDB)
- Автоматическое управление хранилищем (ASM) не используется
- Локальное выполнение тестов на сервере с полностью отключенным межсетевым экраном
Тесты уже выполнены
emctl
Многие люди предлагают проверить "emctl" по привычке. Это не существует для 12c, поскольку он использует EM Express, а не управление базой данных.
http / https,
который я настроил, и проверил это для http и https. Нет разницы.
Браузер
Я проверял это в ванильных установках IE 11, Chrome и Firefox. Надстройки не включены.
Доступ к базе данных Доступ
к CDB и PDB возможен, а запросы доступны через SQLPlus.
Telnet
Открытие telnet-соединений с портами (например, 5500) работает.
Журнал оповещения
журнал оповещения Оракул не содержит каких - либо сообщений об ошибках.
Мои гипотезы
- Нечто связанное с поиском имени хоста, так как оно работает -slighty- при использовании IP-адреса вместо имени хоста.
- Нечто связанное с сертификатом, хотя та же самая проблема обнаруживается для http.
- Что-то связанное с настройкой службы XDB или службы прослушивания.
- Что-то связано с тем, включена ли доменная часть имени хоста или нет. Как это добавляется в большинстве файлов конфигурации, но, возможно, не везде?
Подробная информация о платформе
Примечание. В этих фрагментах я всегда заменял фактическое имя хоста на «HOSTNAME», а фактический домен - на «domain». Если используется «HOSTNAME», это означает, что оно не отслеживалось по имени домена. Регистр представляет собой фактический регистр, в котором отображается имя хоста.
SYS_CONTEXT ('USERENV', 'SERVER_HOST')
имя хоста
переменная hostname в CMD
HOSTNAME
SYS_CONTEXT ( 'USERENV', 'DB_DOMAIN')
домен
dbms_xdb_config.gethttpsport ()
5500
dbms_xdb_config.gethttpport ()
2200
вывод "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
вывод "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 ( Trimmed , также содержит другие настройки ...)
db_domain=domain
db_name="ecoomdb"
dispatchers="(PROTOCOL=TCP) (SERVICE=ecoomdbXDB)"
local_listener=LISTENER*
netstat -a
(соответствующий выбор)
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
(этот файл пуст)
Переменные среды
- PATH содержит C: \ ORACLE \ HOME \ bin
- ORACLE_HOME = C: \ ORACLE \ HOME
- ORACLE_SID = ecoomdb
Реестр HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB12Home1
- ORACLE_HOME = C: \ ORACLE \ HOME
- ORACLE_SID = ecoomdb
Связанные и дублирующие (без ответа) вопросы / документы
Интернет ресурсы
Вопросы по обмену
- Невозможно открыть / подключиться к Oracle 12c Enterprise Manager Express
- «Невозможно отобразить страницу» с Oracle 12c Enterprise Manager Database Express
- Запустите Oracle 12c Enterprise Manager в Windows 7
- Как запустить ORACLE 12C EM?
- Oracle 12c Express Enterprise Manager в Centos 6.5 недоступен
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/
Сообщество 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
Ответы:
Что вы получаете, когда запускаете эти команды на хосте БД
из командной строки ping хост ping ipaddress (хост ipaddress) tnsping tnsalias
и запустите службы lsnrctl и посмотрите, отказано ли какое-либо соединение (я)
если на клиентском компьютере установлен клиент oracle (откуда вы обращаетесь к oracle em express)
запустить из командной строки 1) ping ipaddress (db host ipaddress) - >> если вы получаете ошибку, добавьте ipaddress и имя домена в файл hosts 2) tnsping tnsalias
Редактировать:
Диспетчер D000 показывает 21 соединение отказано. У вас проблемы с сетью.
Попробуйте перезапустить прослушиватель и подключиться к em express и посмотреть, что на выходе служб lsnrctl в идеале отклоненные соединения должны быть равны нулю.
источник
Обратившись в службу поддержки Oracle, я смог выяснить, что происходит. Этот сервер имеет 4 сетевых адаптера, 1 адаптер, подключенный к сети, и 3 ненастроенных адаптера, подключенных к хранилищу iSCSI. Кажется, проблема вызвана тем, что веб-клиент или EM-сервер (здесь не уверен) пытаются отправить запрос веб-страницы не тому адаптеру.
Для тех, кто сталкивается с той же проблемой, вы можете проверить это, перейдя по URL (используя hostname.domain) и затем проверив файл listener.log (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener. журнал). Для меня в сообщении об ошибке был указан IP-адрес, отличный от IP-адреса основных сетевых адаптеров серверов. IP-адрес одного из сетевых адаптеров, подключенных к iSCSI, где показано. Опуская IP-адреса в моем исходном сообщении, я не заметил эту разницу IP-адресов.
При отключении дополнительных сетевых адаптеров все работает нормально.
Кроме того, при переходе к chrome: // net-internals / # dns в chrome IP-адреса всех четырех сетевых адаптеров показывались для моего имени хоста.
По-видимому, эта проблема не возникает при просмотре веб-страницы с другого хоста. Кроме того, nslookup возвращает только правильный IP-адрес. Так что, похоже, это не проблема DNS, а локальная проблема. Я думаю, что это не полный ответ на проблему, так как отключение сетевых адаптеров не может быть окончательным решением, но я надеюсь, что у любого, кто столкнется с этой проблемой в будущем, сейчас есть «что-то еще» ...
Откуда возникает несоответствие между IP-адресом, возвращаемым DNS-сервером, и IP-адресами, используемыми веб-браузерами?
Я также внес некоторые дополнительные изменения, которые могли повлиять на конечное решение, поэтому для полноты картины я включу их. Не уверен, если уместно ...:
источник
Попробуйте использовать IP-адрес:
Таким образом вы обязательно поразите привязку сетевой карты к ip.
источник
У меня была такая же проблема после установки Oracle 12.2.0.1 на Windows 2016.
Сначала я обнаружил, что TCP / IPv6 включен, поэтому отключил его.
Затем попытался выполнить следующий номер примечания Oracle (идентификатор документа 1608258.1) - 12c EM Express показывает неверную ошибку сертификата в веб-браузере.
Также не работал.
Я исправил это по старой школьной манере ... :)
Я обнаружил, что пользователь Windows Oracle_DBA (который вошел в систему на компьютере и использовал для установки Oracle 12c) не имеет каких-либо разрешений для 2 файлов в папке "xdb_wallet".
Так:
1- Я изменил владельца для папки "xdb_wallet" с того, что было на Oracle_DBA:
2 - изменил владельца 2 файлов (ewallet.p12, cwallet.sso) в папке "xdb_wallet" с того, что было на Oracle_DBA:
3. Я снова выполнил шаг 1 и проверил, что право собственности на файл 2 изменилось.
Веб-сайт https: // имя_хоста: 5500 / em отлично работал на FireFox, потому что IE11 / Win2016 имеет забавные проблемы с Flash Player.
Я не знаю с точки зрения безопасности, что это значит (шаги 1-3) или какие угрозы могут произойти из-за этих изменений.
Пожалуйста, совет, если вы знаете.
источник
Проверьте IP-адрес для имени хоста в
/etc/hosts
файленапример, ниже мой файл хостов
tom
мое имя хоста и10.148.180.115
IP-адрес моего хостаисточник