|
Problem |
TroubleShooting for problems with the WebSphere® Edge
Components. This should help address common issues with this component
before calling IBM support and save you time.
When trying to start "dsserver", via the command line, an error is
received that the server was not started.
"dsserver" is merely a script that is used to start the Java process that
allows the Load Balancer's user space functionality to communicate with
the kernel space functionality, thus allowing us to issues commands
(formerly ndcontrol, in current versions, dscontrol). Issuing this command
not only starts the Java process, but it sets a number of variables for
the load balancer environment such as the Java PATH, RMI port (for the
above mentioned communication), the configuration that will be loaded,
etc. You can view this file to get a better understanding of the variables
set and for troubleshooting as outlined in this tech-note.
Windows OS C:\WINNT\system32\dsserver.cmd
Unix OS usr/bin/dsserver
When starting dsserver, the output is written to the server.log
Windows OS: C:\Program Files\IBM\edge\lb\servers\logs\dispatcher
UNIX OS: <install root>/IBM/edge/lb/servers/logs/dispatcher.
Sometimes this file will provide a lot of insight, but many times the
loglevel is set to 1 and there may not be much useful information. |
|
Cause |
There are a number of possible causes for this failure;
the Java version is not supported
the Java process has already been started
the RMI port is already in use
the Java PATH is set incorrectly and points to a different version of Java
on the machine
the hostname or IP address resolved by Java is incorrect (usually
experienced with a multi-NIC machine)
the admin keys used by Load Balancer are corrupted |
|
Solution |
Follow these steps to eliminate the above mentioned
causes. Should error continue after attempting these corrections, a
MustGather list has been provided:
1.) Try issuing java -fullversion and confirm that it matches the
prerequisites outlined on our site:
http://www-306.ibm.com/software/webservers/appserv/doc/latest/prereq.html
2.) Check to see if the Java process has already been started
Windows OS: check the task manager for javaw, if it exists, "End Task" and
try again.
UNIX OS: ps -ef|grep Java
If the output indicates the RMI port of 10099, then that is the Java
process in question. Then issue kill <pid> on that process. Try
dsserver again. If the process is not listed, then it has not been
started.
3.) Check to see if the RMI port is already in use (usually this means
that the process is already started as not many programs use this port):
Windows OS: netstat -an (search for 10099)
UNIX OS: netstat -an|grep 10099
If the port is in use by another program then you must either stop that
process, or change the default RMI Port in the dsserver script by changing
this variable:
set LB_RMIPORT=10099
(see above "Abstract" for dsserver script location)
4.) Confirm that the Java PATH points to the correct version
Windows OS: issue "path" via the command line
UNIX OS: echo $JAVA_HOME
If you require two versions of Java on your machine you can force Load
Balancer to use the required version of Java by editing the dsserver
script to point to the correct version by changing this variable:
Windows OS: set PATH=%PATH%;c:\progra~1\ibm\java142\bin;
If the dsserver script is already correct, you may want to make sure that
the bin directory is listed first (see example below):
set PATH=c:\progra~1\ibm\java142\bin;%PATH%
5.) It is quite possible that the hostname that is resolved by Java is
incorrect for whatever reason. To force the RMI server to use the correct
IP address, you can edit the following lines in the dsserver script file
to include the "-Djava.rmi.server.hostname=w.x.y.z" where"w.x.y.z" is the
IP address of the Load Balancer machine.
javaw %LB_ENCODING% -Djava.rmi.server.hostname=w.x.y.z -Xrs -cp
%LB_CLASSPATH% %LB_INSTALL_PATH% %LB_CLIENT_KEYS% %LB_SERVER_KEYS%
-Djava.protocol.handler.pkgs=com.ibm.net.ssl.internal.www.protocol
com.ibm.internet.nd.server.SRV_KNDConfigServer %LB_RMIPORT% %LB_LOGDIR%
%LB_SAVEDIR% %LB_BINDIR% %LB_CONFIGFILE% %LB_RMISERVERPORT%
&
java %LB_ENCODING% -Djava.rmi.server.hostname=w.x.y.z -cp %LB_CLASSPATH%
%LB_INSTALL_PATH% %LB_CLIENT_KEYS% %LB_SERVER_KEYS%
com.ibm.internet.nd.server.SRV_KillServer KNDServer
NOTE: even though the variable use the term "hostname, you should specify
the IP address.
Save the changes and start dsserver again
6.) The admin keys are created when dsserver is executed for the first
time. Sometimes these files are corrupted or resolve the wrong hostname or
IP and need to be deleted after the above steps have been finished. Please
go to the following directory and delete the keys and try dsserver again:
Windows OS: C:\Program Files\IBM\edge\lb\admin\keys\
UNIX: <install root>/IBM/edge/lb/admin/keys/
What to do Next?
If the above steps did not solve your problem, please see the MustGather
for WebSphere Edge Components Load Balancer "dsserver" fails to
start.
|
|
|
|
Cross Reference information |
Segment |
Product |
Component |
Platform |
Version |
Edition |
Application Servers |
WebSphere Application Server |
Edge Component |
AIX, HPUX, Linux, Solaris, Windows |
6.0 |
Base, Network Deployment |
|
|
|
|