Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Oracle Application Express (APEX) requires one of the following three options for an HTTP server: (1) Oracle HTTP Server (with mod_plsql), (2) Oracle Application Express Listener, or (3) an embedded PL/SQL gateway).

I understand the embedded PL/SQL gateway shouldn't be used when interfacing with browsers outside the firewall, which my application requires.

But, could I simply put an Apache Tomcat between it and the external browsers?

If so, what would be the advantages/disadvantages of using this solution compared to Oracle Application Express Listener (assuming it similarly has an Apache Tomcat between it and browsers)?

share|improve this question
Have you a source for "shouldn't be used when interfacing with browsers outside the firewall"? I can well imagine why but I'd like to read up on it. – Jack Douglas Jan 25 '12 at 18:05
Nothing too detailed. Some links:‌​cation-Express---A-DBA-Perspective.htm and‌​UM%20SECURITY.pdf – ggkmath Jan 25 '12 at 19:49
up vote 1 down vote accepted

The options you note:

  • (1) Oracle HTTP Server with MOD_PLSQL
  • (2) Oracle APEX Listener
  • (3) Embedded PL/SQL Gateway

For each option, pro/con:

(1) Original solution. Full flexibility of an http server with rewrite rules, access rules, etc. However, loading additional modules for mixed application server use can be painful because of the custom Apache build. Also, licensing additional products from Oracle can be pricy.

(2) Latest solution. Most flexible, it can be used in any j2ee container (Tomcat, Glassfish, Weblogic, old OC4J, etc), but should be combined with a true http server with access rules, etc for security (Tomcat is typically combined with HTTPD for this purpose). This does have the problem in that currently this must be deployed for each connection configuration, while (1) is deployed for the whole server with the single configuration.

(3) This is typically not recommended for external deployment in any case. Included is the issue with direct access to the database server from external clients. This can be helped with HTTPD as a proxy server (like Tomcat above).

In existing installs, where you already have mod_plsql applications in place, put the APEX dad along side those and you should be set using solution (1). For new installs, I would go with (2). (3) is a viable option for initial setup and testing, but should be replaced prior to production deployment.

share|improve this answer
For (2), would I just follow the install instructions for Glassfish if I wanted to use with Tomcat? (since Tomcat is not officially supported, there are no instructions to install on it). The other solution I'm considering is using Oracle HTTP Server that comes with 11G database, keeping them both on one server, and getting a separate server for middle tier plus Apache Web Server (so APEX has officially supported Oracle HTTP Server in front of it). Any preference? – ggkmath Jan 27 '12 at 4:13
Steps for Tomcat are outlined here (…), but basically it is adding the user and roles to tomcat-users.xml, and then configuring the instance the same way from the guide. If you are looking to httpd in front of, then you could look at the Standalone deployment, since this basically uses a small-footprint, embedded j2ee container. – REW Jan 27 '12 at 4:35
Tomcat would typically be on the app server, listening with AJP on a port that is not publicly accessible, with the web server proxying for it. The APEX Listener would then be deployed in it as a normal j2ee application. – REW Jan 27 '12 at 4:37
I will need to use Tomcat on the middle tier server for other purposes anyway, along with Apache Webserver with mod_jk. So if I understand you correctly, there are two approaches I could take regarding APEX Listener: (A) use Standalone deployment (which server is the APEX Listener located in this case?), or (B) add APEX Listener to Tomcat on the middle tier server. Is that right? Thanks so much for your comments REW. – ggkmath Jan 27 '12 at 5:22
(B) is the approach. Deploy it as you would normally deploy a WAR file application in Tomcat. – REW Jan 27 '12 at 6:11

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.