Oracle Apex Architecture and configure Apex using embedded PL/SQL gateway

Apex (Application Express / earlier HTMLDB) : is web application development tool for Oracle Database.

Components in Apex : Oracle Database, tables and PL/SQL code in database, Apex Engine, Oracle HTTP Server (optional from 11.1 database), PL/SQL gateway (from 10g EX or 11.1 and higher only) in place of Oracle HTTP Server

Request flow in Apex :
User type in Apex URL in browser -> Request hit web server (or XML DB HTTP Server) -> Web server forward this is PL/SQL call to database  ->  Database Processes  APEX PL/SQL call and return result to web server as HTML page -> Web Server return web page to user
.

Changes in APEX architecture from Oracle database 11.1 and higher
From Oracle database 11g (11.1 and higher) or Oracle XE (10g),  you could use either Oracle XML DB Web Server (installed as part of database) or standalone Oracle HTTP Server (Apache with mod_pls)

Option 1. For Oracle DB prior to 11.1 (or XE 10g) :  Oracle database versions prior to 11.1 require Oracle HTTP Server (Apache with mod_plsql) to access Apex .

.

Option 2. From Oracle Database version 11.1 and higher (or 10g XE) you could use embedded PL/SQL gateway (XML DB Web Server) hence removing need of Oracle HTTP Server (Apache with mod_plsql) as


 

. 

What is Oracle DB embedded PL/SQL Gateway ?
Embedded PL/SQL gateway provides Oracle Database with Web Server and infrastructure to create dynamic applications. Embedded PL/SQL gateway runs in XML DB HTTP Serverin Oracle Database and includes core features of mod_plsql (apache module for pl/sql), hence removing need of Oracle HTTP Server (Apache web server with additional modules from Oracle)

How to configure Apex with embedded PL/SQL Gateway ?

1. Run apxconf.sql ($ORACLE_HOME/apex)  – enter ADMIN password and XML DB HTTP Server port when prompted
2. Unlock ANONYMOUS account (SQL> ALTER USER ANONYMOUS ACCOUNT UNLOCK;)
3. Access  Apex using http://hostname:port/apex/apex_admin   (where port is port you mentioned above, username as ADMIN and password you entered above)

.

How to Enable/Disable or change Port Oracle XML DB HTTP Server ?

To disable
1. Connect to database as sysdba &
SQL>EXEC DBMS_XDB.SETHTTPPORT(0);
SQL>COMMIT;

To Enable
1. Connect to database as sysdba &
SQL>EXEC DBMS_XDB.SETHTTPPORT(web_port);
SQL>COMMIT;

To check current XMLDB HTTP Server Port
SQL> SELECT DBMS_XDB.GETHTTPPORT FROM DUAL;

Interested in developing web application using Apex but don’t want to install Apex or Database then try http://apex.oracle.com

.

References

Creating workspace, users in Oracle Application Express (Apex) coming soon..

About the Author Atul Kumar

Oracle ACE, Author, Speaker and Founder of K21 Technologies & K21 Academy : Specialising in Design, Implement, and Trainings.

follow me on:

Leave a Comment:

8 comments
Roslyn74 says September 17, 2008

Hi Atul,

Excellent! It must have been the port number but either way I now have an Application Express login page which is a relief!

Again, highest commendations on the work that you do on this site and taking the time to work with me to resolve issue.

Roslyn

Reply
John Degner says December 2, 2008

Great post Atul!

Out of curiosity, is this a production worthy architecture in your opinion or more viable for development purposes?

Thanks for the info!
John

Reply
Atul Kumar says December 3, 2008

John,
I don’t think this is production worthy architecture (This is explanation & Dev)

Reply
Sreekanth Babu V says March 17, 2009

Still some people have confusion of PL/SQL gateway .Where it is present and to which versions it is available and all. This will be very useful for them and gives the right direction.
Nice Work..

Reply
Abdul Salam says February 19, 2012

Hi,

i am almost regular visitor of your blog and now website.

I need your help to configure apex Oracle11gXE for my users/clients through NO-IP host…eg when a user hit http://iberp.myvnc.com they should see user login page.

any idea?

Reply
Atul Kumar says February 20, 2012

@ Abdul Salam,
There are multiple ways to achieve this

1. Install OHS server as reverse proxy listening on public IP with host as iberp.myvnc.com . Configure OHS to forward request (in Reverse Proxy set up) to XML DB HTTP Port

2. Configure Load Balancer (LBR) as reverse proxy and configure LBR to forward request (in Reverse Proxy set up) to XML DB HTTP Port

In both case public DNS should resolve iberp.myvnc.com to IP of OHS or Load Balancer (depending on configuration you are using)

Reply
Bhaskar says December 27, 2012

I create a application on apex, but when I was trying to connect it from another network machine, then it is not working.

how to make my apex application centeralise, so that all my windows network user can access thru their browser.

I also need your email-id, if possible

I feel as you my teacher…..

Reply
neeraj says April 8, 2013

I have oracle 10g XE and I have oracle apex in it by default. Is there any way to exclude apex from default oracle. Coz I dont want it by default. I want to configure it separately from database.

Thanks

Reply
Add Your Reply

Not found