If the workload management component is not properly distributing
the workload across servers in multi-node configuration, use the following
options to isolate the problem.
Eliminate environment or configuration issues
Determine
if the servers are capable of serving the applications for which they have
been enabled. Identify the cluster that has the problem.
- Are there network connection problems with the members of the cluster
or the administrative servers, for example deployment manager or node agents?
- If so, ping the machines to ensure that they are
properly connected to the network.
- Is there other activity on the machines where the servers are installed
that is impacting the servers ability to service a request? For example, check
the processor utilization as measured by the task manager, processor ID, or
some other outside tool to see if:
- It is not what is expected, or is erratic rather than constant.
- It shows that a newly added, installed, or upgraded member of the cluster
is not being utilized.
- Are all of the application servers you started on each node running, or
are some stopped?
- Are the applications installed and operating?
- If the problem relates to distributing workload across container-managed
persistence (CMP) or bean-managed persistence (BMP) enterprise beans, have
you configured the supporting JDBC providers and JDBC data source on each
server?
If you are experiencing workload management problems related to
HTTP requests, such as HTTP requests not being served by all members of the
cluster, be aware that the HTTP plug-in balances the load across all servers
that are defined in the PrimaryServers list if affinity has not been established.
If you do not have a PrimaryServers list defined then the plug-in load balances
across all servers that are defined in the cluster if affinity has not been
established. If affinity has been established, the plug-in should go directly
to that server for all requests.
For workload management problems relating
to enterprise bean requests, such as enterprise bean requests not getting
served by all members of a cluster:
- Are the weights set to the allowed values?
- For the cluster in question, log onto the administrative console and:
- Select Servers > Clusters.
- Select your cluster from the list.
- Select Cluster members.
- For each server in the cluster, click on server_name and note the
assigned weight of the server.
- Ensure that the weights are within the valid range of 0-20. If a server
has a weight of 0, no requests are routed to it. Weights greater than 20 are
treated as 0.
The remainder of this article deals with enterprise bean workload
balancing only. For more help on diagnosing problems in distributing Web (HTTP)
requests, view the "Web server plug-in troubleshooting tips" and "Web resource
does not display" topics.
Browse log files for WLM errors and CORBA minor
codes
If you still encounter problems with enterprise bean workload
management, the next step is to check the activity log for entries that show:
- A server that has been marked unusable more than once and remains unusable.
- All servers in a cluster have been marked bad and remain unusable.
- A Location Service Daemon (LSD) has been marked unusable
more than once and remains unusable.
To do this, open
the service log on the affected servers, and look for the following entries:
- WWLM0061W: An error was encountered sending a request to cluster
member member and that member has been marked unusable for future requests
to the cluster cluster.
Note: It is not unusual for a server
to be marked unusable. The server may be tagged unusable for normal operational
reasons, such as a ripple start being executed while there is still a load
on the server from a client.
- WWLM0062W: An error was encountered sending a request to cluster
member member that member has been marked unusable, for future requests
to the cluster cluster two or more times.
- WWLM0063W: An error was encountered attempting to use the LSD LSD_name to
resolve an object reference for the cluster cluster and has been marked
unusable for future requests to that cluster.
- WWLM0064W: Errors have been encountered attempting to send a request
to all members in the cluster cluster and all of the members have been
marked unusable for future requests that cluster.
- WWLM0065W: An error was encountered attempting to update a cluster
member server in cluster cluster, as it was not reachable from
the deployment manager.
- WWLM0067W: Client is signalled to retry a request. A server request
could not be transparently retried by WLM because of exception:{0}
In attempting
to service a request, WLM encountered a condition that would not allow the
request to be transparently resubmitted. The originating exception is being
caught, and a new CORBA.TRANSIENT with minor code 0x49421042 (SERVER_SIGNAL_RETRY)
is being thrown to the client.
If any of these warning are encountered,
follow the user response given in the log. If, after following the user response,
the warnings persist, look at any other errors and warnings in the Log Analyzer
on the affected servers to look for:
- A possible user response, such as changing a configuration setting.
- Base class exceptions that might indicate a WebSphere Application Server
defect.
You may also see exceptions with "CORBA" as part of the exception
name, since WLM uses CORBA (Common Object Request Broker Architecture) to
communicate between processes. Look for a statement in the exception stack
specifying a "minor code". These codes denote the specific reason a CORBA
call or response could not complete. WLM minor codes fall in range of 0x4921040
- 0x492104F. For an explanation of minor codes related to WLM, see the topic
"Reference: Generated API documentation"for the package and class com.ibm.websphere.wlm.WsCorbaMinorCodes.
Resolve problem or contact IBM support
If
the client logs indicate an error in WLM, collect the following information
and contact IBM support.
- A detailed description of your environment.
- A description of the symptoms.
- The server log files for all servers in the cluster.
- A description of what the client is attempting to do, and a description
of the client. For example, 1 thread, multiple threads, servlet, J2EE client,
etc.
If none of these steps solves the problem, check to see if the
problem has been identified and documented using the links in the "Diagnosing
and fixing problems: Resources for learning" topic. If you do not see a problem
that resembles yours, or if the information provided does not solve your problem,
contact IBM support for further assistance.
If you do not find your problem listed there, contact
IBM Support.