I have written a tiny RMI client. Before I bind to the RMI server, I'm
doing a Naming.lookup to check if the server is registered. It is
taking too much time to throw an exception if the server is not
registered in the rmiregistery. Is there any way I can decrease this
time???
Any help will be appreciated..........
Thanks
Ashwin
we did an analysis of this problem about a year ago, in the java group. it
is a problem with various windows platforms and the implementation of the
look-up, if the ip port does not respond.
Even setting a time-out value on a port you open will not circumvent the
problem.
as i say It was worse on windows, and non-existent on OSX, but recently even
that platform is ignoring the time out values, so that if it is set for 5
seconds , it can still take like 30!!!
AHHHH you lucky guy, I still have the notes from another java group.
here we found 4 seconds on an internal network.
/* bug found on windows!!
Output for this always is something like
< ----------------------------------------------------------------
4802
282
281
282
266
282
281
282
281
282
282
4771
problem found: the JVM is running on Windows XP with netbios over
TCP/IP activated. On connect() the JVM tries to resolve the hostname
(java.net.InetAddress.getHostFromNameService, getHostByAddr).
Windows tries a netbios ns query on udp port 137 with a timeout of
1500ms, ignores any ICMP "port unreachable" packages and repeats this
two more times, adding up to a value of 4.5 seconds (!).
Deactivating netbios "fixes" this, but isn´t always an option ... any
ideas very welcome.
*/
Steve
Steve