[omniORB] Multiple Network Interfaces
Vinaya Kavathekar
vinaya@marathontechnologies.com
Wed, 27 Mar 2002 11:12:59 -0500
Okay! I fixed my problem. Here's the solution, in case anyone else runs into
the same issue.
> The first object registered (a factory object) is located easily, while
all
> subsequent calls do not reach the server at all.
> I ran the server with a command line option of
> -ORBpoa_iiop_name_port public_host_ip_address
> with the same results. My client was still unable to connect to the
server.
> To see what ip addresses were being by the server in creating IORs, I've
> printed IORs for some objects along with additional output using catior's
> routines. They contain the local IP address first and then the one
> specified on public net.
The OMNIORB_USEHOSTNAME environment variable is not the same as
-ORBpoa_iiop_name_port. While the former guides the first network
interface used in creating IORs, the latter appends to it. That is,
assigning the public interface to -ORBpoa_iiop_name_port is not
going to work if your server hostname resolves to a local interface.
For that purpose, you would have to set OMNIORB_USEHOSTNAME to the
public interface IP address. Configuring the DNS servers
correctly to resolve to the correct IP address, one can specify
OMNIORB_USEHOSTNAME=foo.xyz.com. Otherwise, you'd have to specify
the IP address itself, i.e.
OMNIORB_USEHOSTNAME=146.x.y.z
This may be obvious to those steeped in the idiom of CORBA and TCP/IP,
but might help the uninitiated.
Thanks for all the responses.
Vinaya