<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Duncan,<br><br>thank you very much for your comprehensive answer. Yes, I have already tried to do the <br>address resolution myself, but it didn't help.<br><br>This is the result if I use "corbaloc::10.1.2.31:9901/Analyzer1":<br><br>LocateRequest to remote: key<Analyzer1>'<br>Client attempt to connect to giop:tcp:169.254.95.120:9901'<br>Failed to connect (no peer name): 169.254.95.120'<br>Switch rope to use address giop:tcp:169.254.95.12U:9901'<br>Unable to open new connection: giop:tcp:169.254.95.12U:9901'<br>throw giopStream: :CommFai|ure From giopStream.cc:1153(0,NO,TRANSIENT_ConnectFailed)'<br>throw TRANSIENT From omniObjReF.cc:1135 (NO,TRANSIENT_ConnectFailed)'<br><br>The Orb seems to do a reverse lookup get the wrong (169.254.95.120) from the right (10.1.2.31) IP address.<br><br>Regards,<br>Volker<br><br><div><div id="SkyDrivePlaceholder"></div>> Subject: Re: [omniORB] OmniOrb uses wrong network adapter<br>> From: duncan@grisby.org<br>> To: p_danziger@hotmail.com<br>> CC: omniorb-list@omniorb-support.com<br>> Date: Tue, 30 Apr 2013 18:17:30 +0100<br>> <br>> On Tue, 2013-04-09 at 18:28 +0200, Peter Danziger wrote:<br>> <br>> > I forgot to mention, that we are using corbaloc to access the service,<br>> > e.g. "corbaloc::wgvcxpa1:9942/drsm480". The "wgvcxpa1" is resolved to<br>> > the wrong IP address.<br>> <br>> omniORB gives that name to getaddrinfo() or a similar system call to<br>> resolve the name. If a name resolves to multiple addresses, it's up to<br>> the machine's DNS setup as to what order the results come back. If<br>> connecting to an address fails, omniORB actually tries to connect to<br>> other addresses in turn until one works, except that often the only way<br>> to know that a connection has failed is that it times out, by which time<br>> it's too late to try the other addresses.<br>> <br>> Every time omniORB needs to open a connection, it re-resolves the name,<br>> so if the name resolution changes, different connection attempts to the<br>> same name can lead to different addresses. omniORB will open a new<br>> connection either if it previously closed the connection because it was<br>> idle, or because it wants to make a concurrent call while another call<br>> is already in progress.<br>> <br>> The answer about forcing omniORB to use the address you want ought to be<br>> to use the clientTransportRules configuration, and only allow it to<br>> connect to the correct address. Unfortunately, the transport rules are<br>> evaluated before the name lookup, so they can't save you.<br>> <br>> I'll look into processing the transport rules on the resolved names as a<br>> way to avoid this problem. As an alternative, are you able to resolve<br>> the name yourself, rather than using the name in the corbaloc? That way<br>> you'll be able to pick the correct address for yourself.<br>> <br>> Cheers,<br>> <br>> Duncan.<br>> <br>> -- <br>> -- Duncan Grisby --<br>> -- duncan@grisby.org --<br>> -- http://www.grisby.org --<br>> <br>> <br></div>                                            </div></body>
</html>