[omniORB] Problem contacting Naming Service on Win2000

Duncan Grisby duncan@grisby.org
Sun Sep 15 22:14:01 2002


On Thursday 12 September, "Reiner Beck" wrote:

> when I disconnect my network cable from my system, trying to contact the
> naming service fails with a COMM_FAILURE. Of course, the naming service is
> running on the same PC (Windows 2000). For example, invoking a
> > nameclt list
> prints out a "list: Cannot contact the Naming Service because of
> COMM_FAILURE."

[...]
> I tried to change the registry entry "ORBInitialHost" from an empty string
> to the hostname, the name "loopback", the loopback address "127.0.0.1". I
> even removed the gateway address and the DNS entries ...

Here's my guess about what's happening. Running with command line
arguments -ORBtraceLevel 25 will help confirm it. You are using the
obsolete ORBInitialHost configuration, so, to resolve the naming
service reference, the client contacts the "boot agent" running in
omniNames.  The boot agent returns the object reference of the root
naming context. In all likelihood, that object reference contains the
IP address of the machine. My guess is that Windows is upset about
routing to that IP address, since the network cable has gone, even
though the address is still valid.

A work-around for this particular bit of problem is to use a corbaname
URI to configure the naming service, with an entry like

  ORBInitRef NameService=corbaname::localhost

Unfortunately, any operation on the naming service that returns an
object reference on the same machine (like the BindingIterator
returned by list(), for example) will suffer from the same problem.

I don't think there's anything omniORB can do about this. There may be
some way to configure Windows to avoid the issue.

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan@grisby.org     --
   -- http://www.grisby.org --