We provide Oracle administration support on GNU Linux Servers. One of our customers had us set up a new Oracle XE server for them on CentOS. We set up everything and had the system up and running fine. We had also tested everything on the server and verified connection status from clients. Two days after installation we got a call from the customer that he could not open the Oracle XE web administration interface and he was getting an access denied, page not found error on http://127.0.0.1:8080/apex

We promptly looked into the issue and checked for any mistakes in configuration or the setup. We scourged the oracle technology forums for an answer to this problem. There were a few solutions that were mentioned on the site. We tried all of them that we found on OTN but could not figure out the problem. The oracle service was running fine but we could not connect to it through the web admin interface.

Some of the solutions mentioned on the site included

a) Reinstalling Oracle XE - we did not want to go this way as we would not learn anything by doing this
b) Reloading settings by running /etc/init.d/oracle-xe force-reload. We did this but didn't change anything
c) We tried the exec dbms_xdb.sethttpport(8080) strategy but it was throwing errors.

On checking lsnrctl status we were getting the following errors
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=linux)(PORT=1521)))
TNS-12541: TNS:no listener
 TNS-12560: TNS:protocol adapter error
  TNS-00511: No listener

We figured that the the listener was not able to start and bind to the port and had something to do with network settings. We checked out /etc/hostname and /etc/hosts and checked with the local ip. What had happened was that the local static IP was changed manually after the Oracle XE installation but the hosts file did not reflect this change. We corrected this error and did a /etc/init.d/oracle-xe force-reload and presto everything was working.

We were no longer getting the "Could not connect to http://localhost:8080/apex, Page not found" error anymore. We verified that the listeners were running by running lsnrctl status which gave us the correct response which should look like below
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date                1-DEC-2008 17:22:06
Uptime                    0 days 1 hr. 12 min. 14 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Default Service           XE
Listener Parameter File   /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/admin/listener.ora
Listener Log File         /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/network/log/listener.log
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC_FOR_XE)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=linux)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "XE" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XEXDB" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
Service "XE_XPT" has 1 instance(s).
  Instance "XE", status READY, has 1 handler(s) for this service...
The command completed successfully

Post your comments / questions