You should use server clusters and cluster members to monitor
and manage the workloads of application servers.
Before you begin
You should understand your options for configuring application
servers. To assist you in understanding how to configure and use clusters
for workload management, consider this scenario. Client requests
are distributed among the cluster members on a single machine. A client refers to any servlet, Java application, or other program or component that connects the end
user and the application server that is being accessed.
About this task
Perform the following steps if you decide to use clusters
to balance your workload.
Procedure
- Decide which application server you want to cluster.
- Decide whether you want to replicate data. Replication
is a service that transfers data, objects, or events among application
servers.
You can create a replication domain when creating
a cluster.
- Deploy the application onto the application server.
- Create a cluster.
After configuring the application
server and the application components exactly as you want them to
be, create a cluster. The original server instance becomes a cluster
member that is administered through the cluster.
- Create one or more cluster members.
Configure a backup cluster.
Avoid trouble: If you have
clients running in an environment:
- That includes Java thin
clients,
- Where requests are being routed between multiple cells, or
- Where requests are being routed within a single cell that includes
nodes from earlier versions of the product,
they might suddenly encounter a situation where the port information
about the cluster members of the target cluster has become stale.
This situation most commonly occurs when all of the cluster members
have dynamic ports and are restarted during a time period when no
requests are being sent. The client process in this state will eventually
attempt to route to the node agent to receive the new port data for
the cluster members, and then use that new port data to route back
to the members of the cluster.
If any issues occur that prevent
the client from communicating with the node agent, or that prevent
the new port data being propagated between the cluster members and
the node agent, request failures might occur on the client. In some
cases, these failures are temporary. In other cases you need to restart
one or more processes to resolve a failure.
To circumvent the
client routing problems that might arise in these cases, you can configure
static ports on the cluster members. With static ports, the port
data does not change as a client process gets information about the
cluster members. Even if the cluster members are restarted, or there
are communication or data propagation issues between processes, the
port data the client holds is still valid. This circumvention does
not necessarily solve the underlying communication or data propagation
issues, but removes the symptoms of unexpected or uneven client routing
decisions.
gotcha
A backup cluster handles requests if the primary cluster fails.
- Start the cluster.
When you start the cluster,
all of the application servers that are members of that cluster start.
Workload management automatically begins after the cluster members
start.
- After the cluster is running, you can perform the following
tasks:
- Stop the cluster.
- Upgrade the applications that are installed on the cluster members.
- Detect and handle problems with server clusters and their workloads.
- Change how frequently the workload management state of the client
refreshes.
The default timeout value for the com.ibm.CORBA.RequestTimeout
JVM property is 0, which means wait forever. This
default value is not a good setting to have for failover situations.
Therefore, if your application is experiencing problems with timeouts,
or if you have configured your system for failover situations, use
the -CCD option on the LaunchClient command to set an appropriate
non-zero value for this property.
If the workload management
state of the client refreshes too soon or too late, change the interval
setting of the JVM custom property com.ibm.websphere.wlm.unusable.interval.
What to do next
For stand-alone Java clients,
you must define a bootstrap host. Stand-alone Java clients are clients
that are located on a different machine from the application server
and have no administrative server. Add the following line to the Java
virtual machine (JVM) arguments for the client:
-Dcom.ibm.CORBA.BootstrapHost=machine_name
where
machine_name is the name of the
machine on which the administrative server is running.