[omniORB] Bad infuence of IFR on omniNames (Windows)
Poilpret Jean Francois
jfpoilpret@hn.vnn.vn
Mon, 20 Sep 1999 02:01:34 +0700
Hi all omniOrbers !
It seems I just found a bug on the way omniORB (2.8.0 pre 1) bootstraps =
on Windows (NT4).
I just added an Interface Repository to my config (for testing).
To be recognized by omniORB, I added an entry "INTERFACE_REPOSITORY" to =
the Windows registry, with the IOR of my IFR.
The problem is that now, I cannot get the Root NamingContext from =
omniNames !!!!
I just browsed through the initFile.cc and found the following lines =
that seemed strange to me:
>>>>
if (CORBA::is_nil(NameService) && =
CORBA::is_nil(InterfaceRepository)) {
if ((char*)bootstrapAgentHostname !=3D 0) {
omniInitialReferences::singleton()
->initialise_bootstrap_agent(bootstrapAgentHostname,
bootstrapAgentPort);
<<<<
in method initFile::initialize()
The problem here is that when you put an entry for INTERFACE_REPOSITORY, =
the global test fails.
HOWEVER, at this time the NameService is not yet initialized (because I =
used the "ORBInitialHost" and "ORBInitialPort" entries (instead of the =
"NAMESERVICE " one).
So in this precise case, the Naming Service reference will never be =
initialized.
I had no time to search deeper in the sources (I am not sure this is =
actually this part of the source which is faulty, it's just the part of =
code that catched my eyes while browsing).
The work-around is not to use the ORBInitialHost and ORBInitialPort =
entries in the registry, but use the NAMESERVICE entry instead (in this =
case, don't forget to remove the two previous entries completely).
Since I haven't tried omni 2.8 pre2 yet, I apologize if this problem has =
already been fixed.
Thanks to all you guys at ATT
Jean-Francois