[omniORB] Multi EndPoint Failure - Possible Bug.
jklein at rockwellcollins.com
jklein at rockwellcollins.com
Wed Mar 22 15:58:40 GMT 2006
Quick overview.
My omniOrb config file is set to include all interface IPs in the IOR.
After inspection of the IOR, I can clearly see this is happening..
Type ID: "IDL:CF/DeviceManager:1.0"
Profiles:
1. IIOP 1.2 192.168.78.22 32778 "....Q........."
TAG_ORB_TYPE omniORB
TAG_CODE_SETS char native code set: ISO-8859-1
char conversion code set: UTF-8
wchar native code set: UTF-16
wchar conversion code set: UTF-16
TAG_ALTERNATE_IIOP_ADDRESS 10.0.26.1 32778
TAG_ALTERNATE_IIOP_ADDRESS 10.26.1.1 32778
TAG_ALTERNATE_IIOP_ADDRESS 172.16.0.26 32778
Also note, 192.168.78.22 and 10.0.26.1 are both the same interface (eth2)..
Due to our test environment, all these IPs must be included.. That's
because this same system could be put into many different environments..
For example, during a test environment, 192.168.78.22 is used as this IP
allows external communications.. But when we switch to real environment,
the traffic will then need to go through 10.26.1.1 which is (eth3) as
nothing is connected to eth2.. Sorry, can't show diagrams to show this more
clearly..
When we are in the test environment, everything works fine.. Which means
all IP is going over the 192.168.x.x addresses..
When we are in the real environment, it breaks..
So I turned on level 25 TRACE to see what is happening. And see this..
First I search for 192.168.78.22 and find only one entry..
...........
omniORB: LocateRequest to remote: root<2>
omniORB: Client attempt to connect to giop:tcp:192.168.78.22:32958
..........
Next I search for 10.0.26.1 and find two entries..
..........
omniORB: Switch rope to use address giop:tcp:10.0.26.1:32958
omniORB: LocateRequest to remote: root<2>
omniORB: Client attempt to connect to giop:tcp:10.0.26.1:32958
.............
Next I search for 10.26.1.1 and find nothing.. Same for 172.16.0.26..
The question is, why did it attempt 10.0.26.1 and not attempt to use
10.26.1.1??
And just as a FYI...
The side that is using the above IOR to connect to also has a similar
situation.. It has two IPs in the IOR (192.168.78.20 and 10.26.0.1) which
are both on eth3. .. The test environment uses 192.168.78.20.. The real
environment uses 10.26.0.1.. This works..
.......
omniORB: Client attempt to connect to giop:tcp:192.168.78.20:33315
.......
omniORB: Switch rope to use address giop:tcp:10.26.0.1:33315
omniORB: LocateRequest to remote: root<3>
omniORB: Client attempt to connect to giop:tcp:10.26.0.1:33315
omniORB: Client opened connection to giop:tcp:10.26.0.1:33315
.......
My simple observation seems to point me to believe that it works fine if
all IPs refer to the same interface.. Both sides only attempted to connect
on IPs that are the same interface..
Is this a BUG or am I forgetting to set an option to allow it?
Thanks,
John
More information about the omniORB-list
mailing list