[omniORB] Multiple Network Interfaces

Vinaya Kavathekar vinaya@marathontechnologies.com
Tue, 26 Mar 2002 17:08:14 -0500


Hello,

This question has been asked before and I have also tried implementing the
solutions suggested therein, yet it hasn't solved my particular problem. I'm
using omniORB 3.0.4

I'm running a CORBA  server on a system that has two private and one public
network card. Since I have a very small number of objects all of them are
registered, with unique object ids, with the omniINSPOA. The server port is
pinned to 2809. Here is what I notice when I try connecting a remote client.
The first object registered (a factory object) is located easily, while all
subsequent calls do not reach the server at all. 

After referring to this suggestion from Sai-Lai

http://www.uk.research.att.com/omniORB/archives/2001-08/0137.html

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. Here's a minimal output which will illustrate the behavior. 

--------------------------------------------------------------------------
Activating object EnduranceObjectManager
IDL object MtcSysMgr::CORObjectManager IOR =
'IOR:010000005d00000049444c3a6d7463
2e636f6d2f636f6d2f6d61726174686f6e746563686e6f6c6f676965732f656e647572616e63
652f
6d616e616765646f626a656374732f4d74635379734d67722f434f524f626a6563744d616e61
6765
723a312e3000000000020000000000000032000000010100000e0000003139322e32382e3133
362e
313700f90a16000000456e647572616e63654f626a6563744d616e6167657200000000000036
0000
00010100000f0000003134362e3131352e3135342e383600cdf90acdcd16000000456e647572
616e
63654f626a6563744d616e61676572'
Type ID:
"IDL:mtc.com/com/marathontechnologies/endurance/managedobjects/MtcSysMg
r/CORObjectManager:1.0"
Profiles:
1. IIOP 1.0 192.28.136.17 2809
0x456e647572616e63654f626a6563744d616e61676572  (
22 bytes)
2. IIOP 1.0 146.115.154.86 2809
0x456e647572616e63654f626a6563744d616e61676572
(22 bytes)
Activating object Object_0
Type ID:
"IDL:mtc.com/com/marathontechnologies/endurance/managedobjects/MtcSysMg
r/CORBase:1.0"
Profiles:
1. IIOP 1.0 192.28.136.17 2809 0xfe5faca03c0000054c0000000001  (14 bytes)
2. IIOP 1.0 146.115.154.86 2809 0xfe5faca03c0000054c0000000001  (14 bytes)
Activating object Object_1
Type ID:
"IDL:mtc.com/com/marathontechnologies/endurance/managedobjects/MtcSysMg
r/CORBase:1.0"
Profiles:
1. IIOP 1.0 192.28.136.17 2809 0xfe5faca03c0000054c0000000002  (14 bytes)
2. IIOP 1.0 146.115.154.86 2809 0xfe5faca03c0000054c0000000002  (14 bytes)

----------------------------------------------------------------------------
-

As it can be seen the first interface used in the IOR is always the local
interface while the second is the public one. Clients trying to connect are
obviously using the public interface and since it isn't the first one, they
don't get the required references. (I think) Is there an obvious solution to
this problem - perhaps a misinterpretation of the information on my part. 

I'd really appreciate pointers to go about tracing this problem. 

Thank you for all your help,
Vinaya