August 12th, 2012
Well we decided to host our production DW Apex applications using the Apex Listener with Weblogic.
I got the task of doing this. The Apex Listener option is relatively new to Apex, older versions use OHS / Apache. Not only am I new to this listener architecture but I’m also fairly new to Weblogic, although I have admin’d Oracle older application server technologies for years.
I’ve setup APEX with the EPG (embedded PL/SQL gateway) recently, which was relatively painless. I’ve also setup older versions of APEX with OHS / Apache on the same host as the database, slightly more complex but not too time consuming either. All total, there are 3 different options for configuration of a listener / web server for APEX.
For any of these Oracle links you may have to have an OTN account/pw – easy to setup goto to otn.oracle.com if you do not have one.
Apex Installation Guide is here:
http://docs.oracle.com/cd/E23903_01/doc/doc.41/e21673/toc.htm
Apex Listener Installation Guide is here:
http://www.oracle.com/technetwork/developer-tools/apex-listener/overview/index.html
We chose WLS and Apex listener for it’s flexibility, scalability, security features for our DW production environment and last but not least we have an Enterprise license for WLS so it’s basically free.
It appears the Apex Listener is written in Java and should be loaded as a servlet / service in as a Weblogic Application. In our case, we are separating the application server WLS from the database they will live on two different hosts.
So I’m following along with the section of Oracle’s installation that applies to Apex Listener / WLS, and right away I’ve got questions.
The documentation states to install Apex run the following command from sqlplus;
SQL> @apexins SYSAUX SYSAUX TEMP /i/
Ok that was easy enough, until I realized that I ran it from the database node and maybe that command needed to be run from the middle tier / WLS node. Why would I assume that? Because of the “/i/” in the apex ins command (clearly my assumption could be wrong too).
The /i/ appears to be an image directory and I assume that it should be on the middle tier. And Oracle’s Apex Listener installation documentation is of absolutely no help. It does not even mention the concept of multi-tier, not to mention which host the commands should be run from if you are creating a multi-tier env.
Yes, I’m confused but, most of that confusion is about to eliminated, read on.
After posting a few basic questions related to this install on Oracle’s Apex Listener Forum, reading a bit of WLS documentation and re-reading the Apex Listener installation documentation a second time, it dawns on me that it is telling me to create an “i.war” and load that into Weblogic, and that automatically creates a WAR based directory structure for images, DUH… So yes, the directory structure will be created on the middle tier for images in WAR format. This is on top of installing the apex.war that comes with the Apex Listener download…
The i.war file is created with a command like:
First you have to cd into the images directory where you unwound the apex.zip file… Apex zip, not Apex Listener zip. Yes, if you don’t have this zip where you are running WLS from you may have to unzip it on this host even though it was already installed from elsewhere.
This command creates a i.war file that is deployed along with the supplied a.war containing your specific image related info – the listener needs your specific install information.
cd \<apex directory\images
jar –cvf0 <temp directory>\i.war –C <apex directory>\images .
Everybody says, "watch out for that last period, it is required". So, now you know too, it is required.
The “jar” command above should be run from the node that contains your apex installation.
Getting that i.war file loaded into WLS correctly so that it plays nicely with my previous Apex install command: “@apexins SYSAUX SYSAUX TEMP /i/” command is now the immediate challenge.
More on my trials and tribulations later…
August 16th 2012
Turns out 90% of this effort was climbing the WebLogic Admin learning curve.
More specifically Weblogic tasks in order of execution included:
- Weblogic installation, whether or not they are 64 bit and or 32
- Which version of Weblogic shall we use (yes I played with 10.3.3, 10.3.6 and 12c and so far have settled on 12c)
- Creating Weblogic domains
- Within a domain creating, configuring, starting and stopping Admin Servers / Consoles, Managed Servers
- Within a server deploying applications apex.war and i.war
- Configuring SSL
- Auto start of servers
Oracle’s WebLogic 12c install docs are here – while I’m sure 12c has many new features administration seems to be basically the same as 10.3.x:
http://docs.oracle.com/cd/E24329_01/doc.1211/e24492/install_screens.htm
Once I got all that down – and it’s not all done yet but, I do have a working Weblogic domain, server and apex listener application deployed within that server. Still have some work to do.
All in all, a few days worth of reading Weblogic blogs, Oracle’s Weblogic documentation and then back to the original Apex Listener install documentation and it’ about there. At least I’ve got the concepts down and a basic working installation.
If you are doing a 64 bit install of WebLogic, pick the generic jar and download a 64 bit JDK + JRE, separately. It seems JRocket (an optimized version of Java now owned by Oracle) is frequently used with WebLogic.
Oracle’s Apex Listener Installation documentation (link above) is spot on, followed it to the T and works well (several host installs). If you already know Weblogic well, it’s a piece of cake…
Eventually I setup both the Apex Listener (deployed in WebLogic 12c) and the Embedded PL/SQL Gateway (EPG), both supporting the same DB/Apex instance, simultaneously (yes this appears to work without issue). A link to “Hendry’s Oracle DBA Stuff” below helped me remember how to setup the EPG (thank you Hendry)…
http://hendrydasan.com/2010/07/01/install-and-configure-apex-4-0-in-oracle-database-11gr2/