[omniORB] multiple orb result to error!!!!

antony76 at a-1.net.cn antony76 at a-1.net.cn
Fri Feb 6 10:20:14 GMT 2004


hi=2C all!

in my application=2C i use a component which use corba either=2E in that
component=2C orb=5Finit has been called at the begin and a destroy has be=
en
called after the component destructered=2E

but in my main application=2C i use orb=5Finit at the very begining=2C af=
ter =

 i use the component(in the component=2C the orb=5Finit and destroy has b=
een
called once)=2C i found the orb in main dosen=27t work!

Main app=3A
=2E=2E=2E=2E
myorb =3D orb=5Finit()=3B
=2E=2E=2E
my corba call work well
=2E=2E=2E
//call component
	in component now=3A
	otherorb =3D orb=5Finit()=3B
	=2E=2E=2E
	destroy()=3B
=2E=2E=2E
my corba call here dosen=27t work here!!!!!!!!
=2E=2E=2E
destroy()=3B  =

=2E=2E=2E


i open the source code in omniorb(corbaOrb=2Ecc)=2C the code in orb=5Fini=
t
like this=3A

=2E=2E=2E=2E=2E=2E=2E=2E=2E=2E
omni=5Ftracedmutex=5Flock sync(orb=5Flock)=3B

  if( the=5Forb ) =7B
    the=5Forb-=3E=5FNP=5FincrRefCount()=3B
    return the=5Forb=3B
  =7D
=2E=2E=2E=2E=2E=2E=2E=2E=2E=2E=2E=2E=2E

apparently=2C there=27s a refrence cout of the=5Forb=2C that means there=27=
s only
one copy in a single process=2C so the every time call to omni=5Finit wil=
l
return the only orb=2E    =


but it=27s very strangly=2C in the code of destroy=2C like this=3A

=2E=2E=2E=2E=2E=2E
omni=5Ftracedmutex=5Flock sync(orb=5Flock)=3B

if( pd=5Fdestroyed )  OMNIORB=5FTHROW(BAD=5FINV=5FORDER=2C
             BAD=5FINV=5FORDER=5FORBHasShutdown=2C
             CORBA=3A=3ACOMPLETED=5FNO)=3B
=2E=2E=2E=2E=2E=2E=2E

it dosen=27t decrease the ref cout=2C but destroy the orb directly=2C whi=
ch
result to error

is it a bug of omniOrb or i make a wrong call here=3F

thanks in advanced!

Antony=2E Tian=2C 	Feb=2C 6=2C 2004 =






More information about the omniORB-list mailing list