How does weblogic clustering work?

Russell picture Russell · Oct 7, 2010 · Viewed 19.9k times · Source

I'm new to weblogic.

I've read http://download.oracle.com/docs/cd/E11035_01/wls100/cluster/overview.html and searched this topic on the internet but still had a hard time understanding some of weblogic's clustering concepts.

Can anybody confirm/correct my understandings below?

  • a cluster contains one or more logical servers which can reside on one or many physical servers
  • when deploying a j2ee app to a cluster, it is tied to one server in that cluster
  • external users of the deployed app aren't aware of clustering
  • the log file of that app is located on the server it's deployed
  • if the server hosting the app fails, it's okay because the app is in a cluster and another server will pick up the work?
  • if the server hosting the app fails, what happens to logging?

Maybe I got the whole concept wrong. Could anybody point me into the correct directions?

Thanks so much.

Answer

JoseK picture JoseK · Oct 8, 2010

I think you should understand the concept of Domain first.

The Domain is the parent of a Cluster. It contains typically one Admin and one or more Managed servers. Now the Cluster is a grouping of some or all of these managed servers within the domain.

Hope the diagram here helps understanding.

Once you configure a Domain and a Cluster yourself on a development environment, you'll get to know more about it.

Now Here are the answers to your specific questions

•a cluster contains one or more logical servers which can reside on one or many physical servers

True. But let's clarify what you mean by 'logical' servers. In the Cluster you typically have two or more Managed servers. These servers run in their own JVMs and can be started independently and serve requests independently. Each server will have a unique IP:port address, and it can be directly accessed from the browser. But these server instances can reside over multiple physical servers.

•when deploying a j2ee app to a cluster, it is tied to one server in that cluster

No it is not tied to one server. When you deploy a J2EE app to the Cluster, it will get deployed in turn to each server in that cluster. The JNDI is cluster-wide and each server maintains a local copy of the JNDI.

You can look up the object (say an EJB) via JNDI on the Cluster or on the individual server. Also see what types of Objects can be clustered.

•external users of the deployed app aren't aware of clustering

True.

But in this case you should have an Apache web server or a load balancer or DNS server which takes the request from the browser, and internally maps it to one of the servers in the cluster. If you dont have any of these, you would have to define the cluster address as a DNS name or IP address for the client. See the section "Avoiding Listen Address Problems " on http://download.oracle.com/docs/cd/E13222_01/wls/docs103/cluster/setup.html#wp682940

•the log file of that app is located on the server it's deployed

True, one weblogic log per server.

•if the server hosting the app fails, it's okay because the app is in a cluster and another server will pick up the work?

Not by default, you have to configure it for failover and replication. This is a huge topic which needs separate reading

•if the server hosting the app fails, what happens to logging?

Logging stops. You'll see some shutdown or heartbeat errors in the log, or outofmemory or whatever reason for failure. you'll have to restart the server - and logging continues in a new file (depending on your logging settings)