Symptom
Unknown Host Exception Message Generated During Connection Attempt.
The LifeKeeper GUI Client and Server use Java RMI (Remote Method Invocation) technology to communicate. For RMI to work correctly, the client and server must use resolvable hostname or IP addresses. When unresolvable names, WINS names, or unqualified DHCP names are used, this causes Java to throw an UnknownHostException.
This error message may also occur under the following conditions:
- Server name does not exist. Check for misspelled server name.
- Misconfigured DHCP servers may set the fully qualified domain name of RMI servers to be the domain name of the resolver domain instead of the domain in which the RMI server actually resides. In this case, RMI clients outside the server’s DHCP domain will be unable to contact the server because of the incorrect domain name.
- The server is on a network that is configured to use Windows Internet Naming Service (WINS). Hosts that are registered under WINS may not be reachable by hosts that rely solely upon DNS.
- The RMI client and server reside on opposite sides of a firewall. If your RMI client lies outside a firewall and the server resides inside of it, the client will not be able to make any remote calls to the server.
Solution
When using the LifeKeeper GUI, the hostname supplied by the client must be resolvable from the server and the hostname from the server must be resolvable by the client. The LifeKeeper GUI catches this exception and alerts the user. If the client cannot resolve the server hostname, this exception is caught and Message 115 is displayed. If the server cannot resolve the Client hostname, this exception is caught and Message 116 is displayed. Both of these messages include the part of the Java exception which specifies the unqualified hostname that was attempted.
Included in the following sections are some procedures that may be used to test or verify that hostname resolution is working correctly.
From Windows
- Verify communication with the LifeKeeper for Windows server. From a prompt, ping the target using the hostname:
ping<TARGET_NAME>
For example;
ping homer
A reply listing the target’s qualified hostname and IP address should be seen.
- Verify proper configuration.
a. Check configuration of DNS or install a DNS server on your network.
b. Check the settings for ControlPanel->Network->Protocols->TCP/IP. Verify with your Network Administrator that these settings are correct. Note that the hostname in the DNS tab should match the name used on the local name server. This should also match the hostname specified in the GUI error message.
c. Try editing the hosts file to include entries for the local host and the LifeKeeper for Windows servers that it will be connected to.
On Windows 2008 R2 and 2012 systems, the hosts file is:
%SystemRoot%\system32\drivers\etc\HOSTS (e.g. C:\windows\system32\drivers\etc\HOSTS)
Note: On Windows 2008 R2 and 2012, if the last entry in the hosts file is not concluded with a carriage-return/line-feed, then the hosts file will not be read at all.
For example, if my system is called HOSTCLIENT.MYDOMAIN.COM and uses the IPaddress 153.66.140.1, add the following entry to the hostsfile:
153.66.140.1 HOSTCLIENT.MYDOMAIN.COM
- Try setting the hostname property to be used by the GUI client. To do this from a browser with the Plug-in, open the Java Plug-In Control Panel and set the host name for the client by adding the following to “Java Run Time Parameters.”
-Djava.rmi.server.hostname=<MY_HOST>
- Check for Microsoft network-related patches at www.microsoft.com.
From Linux
- Verify communication with the other server by pinging the target server from Linux using its hostname or IP address:
ping -s<TARGET_NAME>
For example:
ping -s homer
A reply listing the target’s qualified hostname should be seen.
- Verify that localhost is resolvable by each server in the cluster using ping with its hostname or IP address. If DNS is not implemented, edit the /etc/hosts file and add an entry for the localhost name. This entry can list either the IP address for the local server or it can list the default entry (127.0.0.1).
- Check that DNS is specified before NIS. DNS should be put before NIS in the host’s line of /etc/nsswitch.conf, and /etc/resolv.conf should point to a properly configured DNS server(s).
- If DNS is not to be implemented or no other method works, edit the /etc/hosts file to add an entry for the hostname.
- Try setting the hostname property to be used by the GUI client. This will need to be changed for each administrator.
To do this from a browser with the Plug-in, open the Java Plug-In Control Panel and set the hostname for the client by adding the following to Java RunTime Parameters:
-Djava.rmi.server.hostname=
To do this from the HotJava browser, append the following to the hotjava command line:
-Djava.rmi.server.hostname=<MY_HOST>
For Example:
-Djava.rmi.server.hostname=153.66.140.1
-Djava.rmi.server.hostname= homer.somecompany.com
Post your comment on this topic.