Software Required for Test 11g SOA Cluster
By Antony Reynolds on Oct 30, 2009
In my last entry I spoke about some of the gotchas that are involved in setting up a cluster. Over the next few entries I am going to describe how to build a SOA Suite 11g cluster for use in a test environment. In this entry we will look at the target architecture and the required software.
I am going to build my 11g cluster on 3 machines.
- Machine DB will host an 11gR1 database. I will also use it to host a software load balancer (I will use WebCache).
- Machine SOA1 will host two WebLogic installations. A WebLogic 11g installation will have a single SOA domain hosting a SOA Suite cluster, including BAM. A WebLogic 10.3 installation will have a single OSB domain hosting an OSB cluster.
- Machine SOA2 will have the same software as SOA1 and will host the same two domains.
When OSB 11g is released then the need for two separate WebLogic installations will go away as the intention is for OSB and the rest of SOA Suite to run on the same WebLogic software version.
As there are two WebLogic domains then I will run an admin server on each machine, one domains admin server on SOA1 and the other domains admin server on SOA2. This helps reduce the memory footprint.
Logically the architecture is shown below with a load balancer distributing load across the SOA and OSB clusters with a backend 11g database.
As for testing I don’t have a hardware load balancer then I run the load balancer on the same machine as the database to give the physical architecture shown below.
I will run this on 3 virtual machines on a server with 8gb memory, allowing 2gb for each virtual machine.
As a large number of customers seem to be running Linux these days I will use Oracle Enterprise Linux 5.3. I will use 64-bit Linux for the DB machine and 32-bit Linux for the SOA machines.
It is quite common for clusters to be using a RAC database rather than a single instance database, but that was one VM too many for me to get my head around.
So now we have identified the logical and physical architecture we need to identify what software we will require. The software used is all available for download from OTN by clicking on the software link as shown in the table below. Our target machine for the software is also shown in the table.
|Oracle WebLogic Server 11g Rel 1||Required for SOA Suite||SOA1, SOA2|
|SOA Suite||Core SOA Suite||SOA1, SOA2|
|Oracle Service Bus 10gR3||Service Bus||SOA1, SOA2||11g release will be available shortly.|
|Repository Creation Utility||Creates Meta-Data repository for SOA Suite||DB||May be run from any machine with network access to database.|
|Oracle Database 11g Release 1||Holds Meta-Data repository for SOA Suite||DB||Any database certified with SOA Suite may be used.|
|Web Tier Utilities||Contains Web Cache for use as a load balancer||DB||Another load balancer may used.|
|Enterprise Linux||Operating System||SOA1, SOA2, DB||Any OS certified with database or SOA Suite may be used. DB machine may be a different OS to SOA machines.|
There are a number of software load balancers available, including functionality built into Linux so why did I use WebCache. Well there are a number of reasons.
- I like WebCache
- It has a nice web based UI for configuring and monitoring
- It supports cookie based affinity (see previous post for importance of this)
- It does the job
Just be careful when using WebCache with SOA Suite that you do not use it to cache data. To my knowledge no testing has been done within Oracle with using WebCache in conjunction with SOA Suite 11g so don’t deploy it in a production environment.
I have to confess that the idea of using WebCache as a load balancer was not mine, but my colleague Nick Cosmidis, so thanks Nick.
Setting up a cluster requires shared storage, ideally for the domain home but also for shared resources such as JMS message stores. I could have used an iSCSI appliance to provide this but I chose instead to use the DB machine as a shared file server for the mid-tier components.
The cluster also requires IP addresses. Obvious but there are different requirements for those IP addresses. The IP address for the load balancer must be routable from all the clients of the cluster. The database, SOA Suite and OSB instances can have non-routable IP addresses as long as they can talk to each other and the the load balancer. The clients don’t have to be able to access the database, SOA Suite or OSB directly because they will go through the load balancer.
I am running this on a virtualized environment, a single 8GB machine hosting all three machines. The only software virtualization fully supported by Oracle is Oracle Virtual Machine. That is not to say it won’t work on other software virtualization environments such as VMware, just that it is not fully supported on those environments. For more information on Oracle’s support policy with respect to virtualization in general check out this link. For specific information on VMware support then check Note 249212.1 in MetaLink.