[tao-bugs] [TAO] Changing interface status after startup cause incomplete IOR

Phil Mesnier mesnierp at ociweb.com
Fri Aug 28 07:39:01 CDT 2015


Hi Benjamin,

> On Aug 28, 2015, at 3:21 AM, Schuele, Benjamin <Benjamin.Schuele at karlstorz.com> wrote:
> 
>    TAO VERSION: 2.2.0
>    ACE VERSION: 6.2.0
> 

Thank you for using a PRF. Note that your version of TAO is no longer supported. For long term support I suggest you adopt OCI TAO 2.2a which is forked from TAO 2.2.0.


>    HOST MACHINE and OPERATING SYSTEM:
>        Ubuntu 14.04.3 LTS
> 
>    THE $ACE_ROOT/ace/config.h FILE 
>         #include "ace/config-linux.h"
> 
>    COMPILER NAME AND VERSION (AND PATCHLEVEL):
>        gcc (Ubuntu 4.8.4-2ubuntu1~14.04) 4.8.4
> 
>    THE $ACE_ROOT/include/makeinclude/platform_macros.GNU FILE 
>        cross_compile=1

just curious, what is your cross compile target?
> 
>    SYNOPSIS:
>        If a computer running a corba program get an IP (over DHCP) after object generation, the IOR send to other computers misses the new IP.
> 
>    DESCRIPTION:
>       We have a simple network device and a PC program talking each other with corba. In order to work without name resolution, we use the "-ORBDottedDecimalAddresses 1" option. If the user power up the device and connecting the network cable after the software is started, all GIOP call from the device sending an IOR to the computer misses the new IP. This cause the computer program to not be able to use this object pointer.
> 

The best solution is DNS if that is at all possible. What happens if you don't use -ORBDottedDecimalAddresses 1 what happens?

There are a couple issues at hand here. First, TAO servers using defaulted listen addresses will enumerate the interfaces known at initialization time so those are the only ones included in the IOR. Second, when you advertise a fully qualified IOR in a file, there is no way for the server to update any consumers of that file even if the first issue is addressed.

Coincidentally OCI is getting ready to release a new patch for OCI TAO 2.2a which takes the first step towards addressing this situation. For it to work, the server must use the IOR table and clients must use "corbaloc:iiop:1.2@<host>:<port>/<iortablekey>" as its IOR. The IORTable in the server has a new "refresh" feature which causes it to update a bound IOR's list of endpoint addresses each time an IOR is requested. That should be available this afternoon US time.

Best regards,
Phil

--
Phil Mesnier
Principal Software Engineer and Partner,   http://www.ociweb.com
Object Computing, Inc.                     +01.314.579.0066 x225






More information about the tao-bugs mailing list