maandag 11 februari 2013

Upgrading APEX in the pre-built Oracle VM Virtualbox

I really like Oracle Virtualbox, especially the pre-built VM's from Oracle. For those not acquainted: it does pretty much the same as VMware.  One can download Virtualbox from here, and the pre-built VM's from here.

Personally I like: `Database App Development VM': it delivers a pre-configured Oracle EE database, with APEX and APEX listener pre-installed. Importing a pre-built VM is very easy. If setup with NAT port forwarding, one can use the VM as if it were a true service on the host. To do that: start the VM in headless-mode (left-shift + click on start), so that you don't get a terminal. For a how-to of various network configuration-options click here.

For the following it is convenient to start the VM with a terminal / display. Remember that all passwords on the pre-build VM are `oracle' (without the quotes).

When the pre-built VM is up and running, ofcourse one wants to start APEX. However the version of APEX on the pre-build VM is 4.2, whilst the latest is 4.2.1. So we are in need of a patch. The pre-build VM is configured with APEX listener in standalone mode. Patching APEX is relatively straightforward, however we also need to update the images directory of APEX and this can be a bit of a puzzle. This is how I did it:

1. Start the VM, logon as user oracle/oracle and download the APEX 4.2.1 patch from Oracle (click here). Unzip the file in your favorite folder.
2. Stop the APEX listener using the command:
 ps -ef | grep apex | grep -v apexlistener | grep -v grep | cut -c9-15 |
xargs kill -9 
3. Patch APEX, from your download folder, on the database using the following command:
 sqlplus sys/oracle@orcl as sysdba @apxpatch.sql 
4. Remove the current configuration-settings of APEX listener using the following command:
 rm -r /home/oracle/apex 
5. Copy the images directory to an oracle accessible folder, for instance: /home/oracle/images
6. Goto /home/oracle/listener and type the command:
 java -jar apex.war 
Because we removed the previous configuration file, one is required to setup the listener (password for APEX_PUBLIC_USER is `oracle', and SID is `orcl', leave all the rest default) and define where the images folder is located (/home/oracle/images). I kept port 8888 for APEX Listener;
7. When done, press CTRL + c. This will kill the listener, so we have to restart it, this time avoiding hangup when we close the connection:
 nohup java -jar apex.war >/dev/null& 
8. Done. Close the terminal (not the VM) and test the setup by opening a browser and type:
http://localhost:8888/apex

APEX 4.2.1 should come up.

Geen opmerkingen:

Een reactie posten