[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