Oracle 12c Express Enterprise Manager on Centos 6.5 is not reachable

enterprise-manageroracleoracle-12coracle-enterprise-manager

I have Centos 6.5, and installed Oracle 12c. As dbca utility says after configuring new db, EM Express should be available on https://hostname:5500/em
In fact, it is not. Neither on localhost nor by ip.
I also did SQL> EXEC dbms_xdb_config.sethttpport(5501); because DBMS_XDB.GETHTTPPORT() showed "0", and set 5500 was impossible due to the error – 5500 seemed busy.
After that I tried both ports and different host names – nothing works.

DB is up and working, here is output of the lsnrctl status(I removed listener.ora to be sure that it's not wrong, but the output is the same):

 LSNRCTL for Linux: Version 12.1.0.2.0 - Production on 18-JAN-2015
 10:27:42

 Copyright (c) 1991, 2014, Oracle.  All rights reserved.

 Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521)) STATUS of the
 LISTENER
 ------------------------ Alias                     LISTENER Version                   TNSLSNR for Linux: Version 12.1.0.2.0 - Production Start Date         
 18-JAN-2015 10:27:20 Uptime                    0 days 0 hr. 0 min. 21
 sec Trace Level               off Security                  ON: Local
 OS Authentication SNMP                      OFF Listener Log File     
 /u01/app/oracle/diag/tnslsnr/hpsa/listener/alert/log.xml Listening
 Endpoints Summary...  
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hpsa)(PORT=1521)))  
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hpsa)(PORT=5501))(Presentation=HTTP)(Session=RAW))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=hpsa)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/main/xdb_wallet))(Presentation=HTTP)(Session=RAW))
 Services Summary... Service "main" has 1 instance(s).   Instance
 "main", status READY, has 1 handler(s) for this service... Service
 "mainXDB" has 1 instance(s).   Instance "main", status READY, has 1
 handler(s) for this service... The command completed successfully

Also, here is my /etc/hosts:

 127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1     localhost localhost.localdomain
 localhost6 localhost6.localdomain6
 192.168.56.101 hpsa hpsa.hpsa hpsa.localdomain node1

hostname:

 [root@hpsa ~]# hostname 

hpsa.hpsa

All that I have now for https://192.168.56.101:5501/em : browsers show that they are connected to the host and trying to retrieve data, but in few long minutes I am getting connection reset. Firefox also showed ssl_error_rx_record_too_long

What am I doing wrong?

Best Answer

0> "and set 5500 was impossible due to the error - 5500 seemed busy"

This means that the port 5500 is already "in use". Well, I bet it is not in use but Oracle thinks that. There are a lot of ports reserved in /etc/services.

Open the file and change the following lines:

fcp-addr-srvr1  5500/tcp                # fcp-addr-srvr1
fcp-addr-srvr1  5500/udp                # fcp-addr-srvr1

Change them into:

#fcp-addr-srvr1  5500/tcp                # fcp-addr-srvr1
#fcp-addr-srvr1  5500/udp                # fcp-addr-srvr1

Retry to set the port with SQL> EXEC dbms_xdb_config.sethttpport(5500);.


EDIT 1:

Your listener shows that it's listening on port 5500 for https requests. So maybe you already did what I just posted. Could you please share the output of the following command?

service iptables status

EDIT 2:

I just activated EM Express on one of my 12c databases. Here is what I did:

  • OS: Oracle Linux 6.5
  • DB: Oracle Database 12.1.0.2.0
  • service iptables status --> OFF

Action log:

$ sqlplus / as sysdba
SQL> SELECT DBMS_XDB_CONFIG.gethttpport FROM dual;

GETHTTPSPORT
------------
        5500

SQL> SELECT DBMS_XDB_CONFIG.gethttpsport FROM dual;

GETHTTPPORT
-----------
          0

I'm going to set https port to 5501 and overwrite the http port with 5500.

SQL> EXEC DBMS_XDB_CONFIG.sethttpport(5500);
PL/SQL procedure successfully completed.

SQL> EXEC DBMS_XDB_CONFIG.sethttpsport(5501);
PL/SQL procedure successfully completed.

Afterwards the listener shows that I's listening on these ports (before the 5500 record was there already but it was not working)

$ lsnrctl status | grep PORT
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=***)(PORT=5501))(Security=(my_wallet_directory=/opt/oracle/admin/orcl/xdb_wallet))(Presentation=HTTP)(Session=RAW))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=***)(PORT=5500))(Presentation=HTTP)(Session=RAW))

I did the test in a browser:

  • Browse to http://***:5500/em --> login screen appears
  • Browse to https://***:5500/em --> login screen appears

Note the tailing "/em" is important.