One simple solution is to create a cold fail-over scenario. Oracle provides also other mechanisms and solution on high availibility, but in this case I want to explain am simple solution for a Oracle SOA environment. The example is based on Oracle SOA 10g (10.1.3) but the mecahnism/concept could also apply on Oracle SOA 11g .
In this example we have an Oracle SOA suite running on a single server and there is a spare server in place. In case the server is not availble for some reason, we would like to bring up the SOA environment as quickly as possible. This can be done by starting the spare server. That's all.
The spare server should be configured in advantage. This is how to prepare the spare server.
- The spare server has his own IP adres and host name.
- A virtual hostname is available.
- The original SOA server is configured with virtual host name.
- Copy the $ORACLE_HOME from the original server.
- Execute the script 'chgiphost.sh' in $ORACLE_HOME/chgip/scripts
- Point virtual hostname to ip adres of the spare server
- Make sure the original server is down
- Start the spare server
- The spare server may NOT be runing while original server is up and vice versa.
Each time when you deploy Java applications to the server (ex. Worklist Application) , you should make a copy of the $ORACLE_HOME from the original server to the spare server. This does not apply for BPEL or ESB (or SCA) while they are stored in the database and retrieved from the database during start-up.
The trick why this simple fail over will work, is the fact it is using a virtual hostname. This hostname is used within the SOA Suite configuration. Further more, we have copied the whole $ORACLE_HOME installation that implies also connection confiugration such as datasources. The only thing we should do is to change the 'hard' IP adress and hostname after the copy with the chiphost.sh script.