[omniORB] Re: Operating within a vserver
Russell Kliese
russell at eminence.com.au
Wed Sep 21 12:51:02 BST 2005
I managed to sort the problem out (or at least get things working).
The problem seemed to be related to omninames using old information when
it was being restarted with a different endpoint option.
For example, if omninames was started with no endPoint option, it would
start and bind to 192.168.6.14 (according to netstat), but it would pass
192.168.6.12 to the CORBA servers, perhaps because 192.168.6.12 was the
first available non 127.0.0.1 interface. I suspect this is related to
some of the fancy footwork that the vserver kernel patches do.
Anyway, changing the endPoint option to giop:tcp:192.168.6.14: and
restarting omninames doesn't change the situation until omninames' log
file (and it's backup?) is deleted and omninames restarted. When it is
restarted, it creates a fresh log file and everything seems to work happily.
So the trick I was missing was removing the omninames log/state file. It
seems that the greatest pains are always caused by small things ;)
Russell
Russell Kliese wrote:
> Thank you for your suggestion, Wernke.
>
> I have tried setting the endPoint option to "endPoint =
> giop:tcp:192.168.6.14:". This causes the following additional lines in
> netstat:
>
> tcp 0 0 192.168.6.14:32852 192.168.6.14:32849
> TIME_WAIT
> tcp 0 0 127.0.0.1:32850 192.168.6.14:2809
> TIME_WAIT
>
> But the server still fails to start. Apparently the corba server is
> attempting to connect from the localhost interface to the omniNames,
> however, this won't work in a vserver because the localhost interface
> is not able to be used.
>
> From my understanding, the endPoint options are used to set up the
> addresses that the CORBA server will listen on, however, I think the
> problem is with the CORBA server trying to contact omniNames.
>
> Is it possible to choose a different address to 127.0.0.1 that the
> CORBA server will bind to when contacting omniNames?
>
> Russell
>
>> Hi,
>>
>> you should use the endPoint option for your server. See chapter 8.6
>> of the
>> manual for details.
>>
>> Wernke
>>
>>
>>> I am having a problem running an omniORB4 corba server from within a
>>> vserver.
>>>
>>> The IP address assigned to the current vserver is 192.168.6.14,
>>> while the host machine ip addresses are 192.168.6.12 and 127.0.0.1.
>>>
>>> omninames looks to be running correctly (netstat -an has it showing
>>> as follows:)
>>>
>>> tcp 0 0 192.168.6.14:2809 0.0.0.0:*
>>> LISTEN
>>> I have set OMNIORB_USEHOSTNAME=192.168.6.14
>>> When I try to run a corba server, I get the following exception
>>> being thrown:
>>> throw giopStream::CommFailure from
>>> giopStream.cc:1076(0,NO,TRANSIENT_ConnectFailed)
>>>
>>> And netstat has the following additional lines:
>>>
>>> tcp 0 0 192.168.6.14:32822 192.168.6.14:32819
>>> TIME_WAIT
>>> tcp 0 0 127.0.0.1:32820 192.168.6.14:2809
>>> TIME_WAIT
>>>
>>> So it looks like the corba server is binding to 127.0.0.1. I suspect
>>> this is the problem because the 127.0.0.1 address is not available
>>> to the vservers. Is there any way to get a corba server to bind to a
>>> different address?
>>>
>>> Thanks,
>>>
>>> Russell
>>>
>>
--
<http://www.eminence.com.au/> Eminence Technology Pty Ltd
PO Box 118, Moorooka QLD 4105
Web: www.eminence.com.au <http://www.eminence.com.au/>
Ph: +61-7-3277-4100
Fax: +61-7-3105-7484
More information about the omniORB-list
mailing list