[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