Oracle APEX Architecture Free Tutorial

This free tutorial explains APEX architecture, i.e. how the HTTP request/response cycle works, how an APEX application works (prerequesite knowledge), then introduces the options for an HTTP listening service: the embedded PL/SQL gateway, the Apache mod_plsql module, and the APEX listener deployed to either a Glassfish or a WebLogic container.

We summarize with benefits and recommendations for the various listener options.

Audience:  Oracle DBA’s, Internet Architects, System Admins, APEX Developers, anyone interested in learning how APEX works.

Presenter: John Watson, Oracle Certified Master and SkillBuilders’ Director of Oracle Database Services.

Moderator: Dave Anderson, SkillBuilders President and Oracle DBA

his free tutorial is segmented into the following modules:

  1. Introduction to John Watson, SkillBuilders Director of Oracle Database Services (1:59)
  2. Tutorial Agenda (2:35)
  3. Understanding the HTTP Request / Response Cycle (6:56)
  4. How an APEX Application Really Works (A Bit of Architecture) (12:21)
  5. Listener Options Part 1: Embedded PL/SQL Gateway & Apache (5:26) (click on video below)
  6. Listener Options Part 2: The Oracle APEX Listener (9:18)
  7. Recommendations and Next Steps (1:27)

Date: Jul 25, 2013

NOTE: Some corporate firewalls will not allow videos hosted by YouTube.


Listener Options Part 1: Embedded PL/SQL Gateway & Apache

Oracle APEX Architecture and Listener Options 


Session 5 – Embedded PL SQL Gateway & Apache


>> John:  Coming onto APEX Listeners. You’ve got three options – the embedded PL/SQL Gateway, there is Apache plus multi PL/SQL, and then there is the APEX Listener. 




Embedded PL/SQL Gateway certainly works. Oracle’s advice is development only. There may be issues on scalability, there may be issues on performance, but certainly it works. But general advice is we shouldn’t use that for production systems. For many years we have been using Apache with our PL/SQL. That works brilliantly, but now that we are in 2013 I’m going to suggest that the APEX Listener itself may be a better option going forward. 


The embedded PL/SQL Gateway that you’ve already seen me configure it, just a couple procedure calls. I got one call to create the listening address, the second call to define the virtual path that end users put into their URLs. That’s straightforward. 




It does require a shared server – dispatchers and shared server processes. You will have by default one dispatcher and one shared server. You will nearly always want to tune this up. You want to do a fair bit of tuning on the shared server architecture to get decent performance through the embedded PL/SQL Gateway. Otherwise, you may now have issue with sessions. 


It certainly works but it may not scale your [01:41 inaudible] level. Most importantly – and this is a major problem with embedded PL/SQL Gateway – you cannot separate the listening tier from the database tier because the listening tier’s implemented through database listener and the database listener will be running on the same machine as your database instance. 


Not being able to separate the listening tier from the database tier is a major issue for security at some sites. Most sites will want to have some sort of firewall security between the HTTP Listener and the database. 




That takes us to the next option, using Apache. Apache solves all the problems of the embedded PL/SQL Gateway. I have a kind of love-hate relationship with Apache and I suspect that Oracle has a love-hate relationship with Apache too. The present situation is there’s an Apache 2.2 HTTP Listener is shipped with the database and it’s also included with Fusion Middleware if you’ve licensed Fusion Middleware. Along with your Oracle provided Apache 2.2 Listener you get a bunch of Oracle supplied modules including a particular mod_plsql. Mod_plsql is the Apache module that any Apache module gets dynamically linked into the Apache executables on-demand. It’s a module that generates the virtual path that end uses put in to their URLs and enables the mapping of that virtual path to procedures within the database. It’s an alternative technique for doing what I did with a couple of procedure calls. 




It is rock-solid technology. There’s no mistake about that. It scales brilliantly. I should say if it is configured appropriately, it scales brilliantly and performs well. It does require quite a lot of configuration to get it to perform well. 




Well proven technology. There are some licensing issues. I have to warn you of that. My understanding of it – I’m not a licensing expert. If I were, I’ll be a salesman and I’ll be rich. But my understanding of the licensing issues is that if you use the embedded Apache license provided with the database or provided with the web logic, Fusion Middleware installation, there’s no charge using Apache on the machine where the database is installed or on the machine where Fusion Middleware is installed. 


If want to run your Apache Web Listener on a separate machine, which is I mentioned on the previous slide you normally would in the previous slide so you can separate the listening tier from database tier then there may be some licensing issues. I just want to mention that could be an issue at some sites. 




Overall though, possibly the major problem is that mod_plsql does not allow some of the latest features of APEX. As far as I know, virtually anything could be done within an APEX Release 3 could be done to the Apache plus mod_plsql. But when we move on to APEX 4 and some more up-to-date facilities you simply won’t have access to them if you use Apache. 




I can’t comment on whether that is because of technology limits or because of whether Oracle just hasn’t got around to implementing it yet. But certainly at the current situation, Apache is a very good solution provided you can work around these limits and provided licensing is not an issue. 


I’m not going to demonstrate this. I think I might run out of time if I do. 




Because what I really want to go onto is the APEX Listener.


Copyright 2017

Free Online Registration Required

The tutorial session you want to view requires your registering with us.

It’s fast and easy, and totally FREE.

And best of all, once you are registered, you’ll also have access to all the other 100’s of FREE Video Tutorials we offer!