Monday, July 18, 2016

Oracle - Enabling Oracle XE APEX

I had been trying to figure where and why can't I log into my Oracle 11g XE APEX. The following are the steps to fix my APEX

1. Find out which port is binded for APEX. For this, you can use lsnrctl command to find it out

$ lsnrctl status | grep HTTP
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=tng-l.localdomain)(PORT=12345))(Presentation=HTTP)(Session=RAW))

The above shows that my APEX is binded to port 12345. So, the URL will be http://hostname:12345apex/apex_admin

2. Next, when I access the url from the browser, it requires me to provide a username password in a authentication dialog, and this dialog always display with either "the server says xdb" or "the server says APEX"

For me, this is telling me that my Oracle has not been set up for remote access. To fix this, I log into Oracle database instance from the command line and issue a procedure call as follow

$sqlplus / as sysdba
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
SQL> exit

After the above, you may need to restart your Oracle database. Then, try to log into APEX again. It should bring you to the log in page which look like


3. Now, I had also forgotten my APEX password. So, I have to reset it with the following in the command line

$sqlplus / as sysdba
Connected to:
Oracle Database 11g Express Edition Release 11.2.0.2.0 - 64bit Production

SQL> @apxxepwd admin
SQL> exit

The above will reset the default Administrator account (username: admin) with the password: admin

You can now log into the APEX with

Username: admin
Password: admin

The APEX will then ask you to change the Administrator password.

There you go, you can start using APEX.