Halaman web Oracle 12c Express Enterprise Manager tidak dimuat

13

Ringkasan masalah

Saat meramban antarmuka web Oracle 12c EM Express, halaman habis saat menggunakan URL seperti:

  • http: // hostname: 5500 / em
  • http: //hostname.domain: 5500 / em

Saat menggunakan url yang berisi alamat IP, atau localhost, halaman dimuat, tetapi sangat sangat lambat (hingga 5 menit).

  • http: // ip-address / em
  • http: // localhost / em

Saat menggunakan nama host, log pendengar menunjukkan kesalahan (beberapa di antaranya):

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

Saat menggunakan alamat IP atau host lokal, log pendengar tidak menunjukkan kesalahan:

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

Masalah ini muncul di seluruh web (lihat referensi di footer), dan tampaknya tidak ada yang dapat menemukan penyebabnya. Saya sudah mencoba saran -every- yang bisa saya temukan, dan mendaftar hasilnya di bawah. Saya akan membiarkan komunitas hebat ini mengambil celah, dan kemudian pergi ke dukungan Oracle ...

Informasi platform

  • Windows Server 2012 R2 x64
  • Oracle 12.1.0.2.0
  • Basis data wadah multitenant (CDB) dengan dua basis data Pluggable (PDB)
  • Manajemen Penyimpanan Otomatis (ASM) tidak sedang digunakan
  • Melakukan tes secara lokal di server, dengan firewall sepenuhnya dinonaktifkan

Tes sudah dilakukan

emctl
Banyak orang menyarankan untuk memeriksa "emctl" karena kebiasaan. Ini tidak ada untuk 12c, karena menggunakan EM Express dan bukan kontrol Database.

http / https
Saya sudah menyiapkan, dan menguji ini untuk http dan https. Tidak ada perbedaan.

Browser
Saya sudah menguji ini di instalasi vanilla IE 11, chrome dan firefox. Tidak ada add-on yang diaktifkan.

Akses basis data
Baik CDB maupun PDB dapat diakses dan ditanyakan melalui SQLPlus

Telnet
Membuka koneksi telnet ke port (misalnya 5500) berfungsi.

Log
peringatan Log peringatan Oracle tidak mengandung pesan kesalahan apa pun.

Hipotesis saya

  • Sesuatu yang terkait dengan pencarian nama host, karena berfungsi -sederhana- saat menggunakan alamat IP, bukan nama host.
  • Sesuatu yang terkait dengan sertifikat, meskipun masalah yang sama muncul untuk http.
  • Sesuatu yang berkaitan dengan konfigurasi layanan XDB atau pendengar.
  • Sesuatu yang terkait dengan bagian domain dari hostname dimasukkan atau tidak. Karena ini ditambahkan di sebagian besar file konfigurasi, tetapi mungkin tidak di mana-mana?

Informasi platform terperinci

Catatan: Dalam cuplikan ini, saya selalu mengganti nama host yang sebenarnya dengan "HOSTNAME" dan domain sebenarnya dengan "domain". Jika "HOSTNAME" digunakan, itu berarti itu tidak dibuntuti oleh nama domain. Kasing mewakili huruf aktual nama host ditampilkan.

SYS_CONTEXT ('USERENV', 'SERVER_HOST')
nama host

variabel hostname dalam CMD
HOSTNAME

SYS_CONTEXT ('USERENV', 'DB_DOMAIN')
domain

dbms_xdb_config.gethttpsport ()
5500

dbms_xdb_config.gethttpport ()
2200

output "status 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

output "layanan 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 (Dipangkas, juga berisi pengaturan lain ...)

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

netstat -a
(pilihan yang relevan)

 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

file host windows
(file ini kosong)

Variabel lingkungan

  • PATH berisi C: \ ORACLE \ HOME \ bin
  • ORACLE_HOME = C: \ ORACLE \ HOME
  • ORACLE_SID = ecoomdb

Registri HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDB12Home1

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

Pertanyaan / dokumen terkait dan duplikat (tidak dijawab)

Sumber daya online

Pertanyaan Stackexchange

Reddit utas

Komunitas Oracle

Wouter
sumber
Apakah nama host untuk mesin Anda dalam DNS, atau sudahkah Anda menambahkannya ke file host Anda?
Philᵀᴹ
File host kosong. Tidak yakin bagaimana tepatnya nama host dikelola, tetapi jaringan menggunakan server ActiveDirectory tempat server terdaftar dengan nama hostnya, dan server DNS mengenalinya.
Wouter
Semuanya terdengar mencurigakan seperti masalah / batas waktu DNS.
Philᵀᴹ
Ada ide tentang cara men-debug, melacak penyebab pastinya?
Wouter

Jawaban:

2

Apa yang Anda dapatkan ketika Anda menjalankan perintah ini pada host db

dari command prompt ping host ping ipaddress (host ipaddress) tnsping tnsalias

dan jalankan layanan lsnrctl dan lihat apakah ada koneksi yang ditolak

jika klien oracle diinstal pada mesin klien (dari mana Anda mengakses oracle em express)

jalankan dari command prompt 1) ping ipaddress (db host ipaddress) - >> jika Anda mendapatkan kesalahan tambahkan ipaddress dan nama domain ke file host 2) tnsping tnsalias

Edit:

Dispatcher D000 menunjukkan 21 koneksi ditolak. Anda memiliki masalah jaringan.

Cobalah untuk me-restart pendengar dan terhubung ke em express dan melihat output layanan lsnrctl idealnya menolak koneksi harus nol.


sumber
Saya menjalankan semua tes pada host db. Ping nama host dan ipaddress, dan tnsping ke CDB dan PDB berfungsi dengan baik. Sambutan bagus tentang koneksi yang ditolak! Saya telah memulai kembali pendengar, dan menggunakan hostname-EM-URL: masalah yang sama "halaman web tidak tersedia", dan lsnerctl tidak menunjukkan entri untuk XDB. Saat menggunakan ip-EM-URL, EM memuat (perlahan) dan saya mendapatkan entri XDB, tetapi tidak ada koneksi yang ditolak. Saya tidak tahu harus membuat apa dari ini, tetapi mungkin itu berlaku untuk Anda?
Wouter
1
apa output dari kedua perintah ini dari container db? SELECT UTL_INADDR.get_host_address dari dual; SELECT UTL_INADDR.get_host_name dari dual;
host_address mengembalikan alamat ipv6, host mengembalikan nama host dalam huruf besar, tanpa domain terlampir. Saya juga menjalankan laporan RDA, dan itu menunjukkan "Pencarian DNS - GAGAL". Selain itu, Kontrol Cloud gagal menginstal ketika menggunakan nama host, tetapi berfungsi saat menggunakan alamat IP. Saya sekarang yakin ini adalah semacam masalah DNS, saya hanya tidak mengerti tentang cara men-debug / menganalisis ...
Wouter
1

Setelah menghubungi dukungan Oracle, saya sudah-bisa-bisa mengetahui apa yang sedang terjadi. Server ini memiliki 4 adapter jaringan, 1 adaptor yang terhubung ke jaringan, dan 3 adapter yang tidak dikonfigurasi yang terhubung ke penyimpanan iSCSI. Masalahnya tampaknya disebabkan oleh klien-web, atau server EM (tidak yakin di sini) mencoba mengirim permintaan halaman web ke adaptor yang salah.

Bagi siapa pun yang menghadapi masalah yang sama, Anda dapat memeriksanya dengan meramban ke URL (menggunakan hostname.domain) dan kemudian memeriksa file listener.log (-oracle_base- / diag / tnslsnr / -instance- / listener / trace / listener. catatan). Bagi saya, dalam pesan kesalahan alamat IP berbeda dari server adapter jaringan utama alamat IP ditampilkan. Alamat IP dari salah satu adapter jaringan yang terhubung ke iSCSI di mana ditampilkan. Saat menghilangkan alamat IP dalam posting asli saya, saya tidak menemukan perbedaan alamat IP ini.

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

Saat menonaktifkan adapter jaringan tambahan, semuanya bekerja dengan baik.

Selain itu, ketika akan "chrome: // net-internal / # dns" di chrome, alamat IP dari keempat adapter jaringan muncul untuk nama host saya.

Rupanya, masalah ini - tidak - terjadi, ketika meramban ke halaman web dari host lain. Juga, nslookup hanya mengembalikan alamat IP yang benar. Jadi sepertinya ini bukan masalah DNS, tetapi masalah lokal. Saya pikir ini bukan jawaban lengkap untuk masalah ini, karena menonaktifkan adapter jaringan tidak bisa menjadi solusi akhir, tapi saya harap siapa pun yang menghadapi masalah ini di masa depan memiliki "lebih banyak untuk melanjutkan" sekarang ...

Dari mana perbedaan antara alamat IP yang dikembalikan oleh server DNS, dan alamat IP yang digunakan oleh browser web?

Saya juga telah membuat beberapa perubahan tambahan yang mungkin memengaruhi solusi akhir, jadi untuk kelengkapan saya akan memasukkannya. Tidak yakin apakah relevan ...:

  • Parameter proses yang ditingkatkan dari database dari 300 menjadi 1000
  • Mengubah parameter "dispatcher" dengan menambahkan "(DISPATCHERS = 5)"
Wouter
sumber
0

Coba gunakan Alamat IP:

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

Dengan cara ini Anda akan yakin untuk memukul kartu jaringan yang mengikat ke ip.

Brian McGinity
sumber
Saya berasumsi maksud Anda, coba tambahkan nomor port ke URL? Dalam posting saya, saya katakan saya mencoba http: // ip-address / em, namun, saya curiga itu salah ketik dan saya benar-benar mencobanya dengan nomor port. Saya tidak berpikir itu akan memuat sama sekali di port default (80). Either way, saya tidak punya cara untuk menguji ini sekarang, karena kami telah beralih dari Oracle ke SQL Server, dan tidak akan pernah melihat ke belakang. Oracle tidak masuk akal dalam hal apa pun kecuali lingkungan kolosal.
Wouter
0

Saya memiliki masalah yang sama setelah menginstal Oracle 12.2.0.1 pada Windows 2016.

Pertama saya menemukan bahwa TCP / IPv6 aktif jadi saya mematikannya.

Kemudian mencoba mengikuti Nomor Catatan Oracle (Doc ID 1608258.1) - 12c EM Express menunjukkan Kesalahan Sertifikat Tidak Valid di browser web.

Juga tidak berhasil.

Saya memperbaikinya dengan cara jadul ... :)

Saya menemukan bahwa pengguna Windows Oracle_DBA (yang masuk pada PC dan digunakan untuk menginstal Oracle 12c) tidak memiliki izin pada 2 file di bawah folder "xdb_wallet".

Begitu:

1 - Saya mengubah kepemilikan untuk folder "xdb_wallet" dari apa pun itu ke Oracle_DBA:

masukkan deskripsi gambar di sini

2- mengubah kepemilikan 2 file (ewallet.p12, cwallet.sso) di bawah folder "xdb_wallet" dari apa pun itu ke Oracle_DBA:

masukkan deskripsi gambar di sini

3 - Saya melakukan langkah 1 lagi, dan memeriksa kepemilikan yang berubah untuk 2 file.

Situs web https: // hostname: 5500 / em bekerja dengan baik di FireFox, karena IE11 / Win2016 memiliki masalah lucu dengan Flash Player.

Saya tidak tahu dari sudut pandang keamanan apa artinya (langkah 1-3), atau ancaman apa yang mungkin terjadi karena perubahan itu.

Mohon saran jika Anda tahu.

Najee Ghanim
sumber
-1

Verifikasi alamat ip untuk nama host dalam /etc/hostsfile

misalnya, berikut ini adalah file host saya

127.0.0.1       localhost
10.148.180.115  tom

tomadalah nama host saya, dan 10.148.180.115merupakan alamat ip untuk host saya

pengguna123317
sumber