[omniORB] CORBA and firewalls/NATs

Renzo Tomaselli renzo.tomaselli at tecnotp.it
Fri Dec 15 09:42:35 GMT 2006


Hi all,
we use the servant activator for dynamically instantiate servants since 
several years and through several versions of OmniORB, till 4.07.
One disappointing feature of this mechanism concerns the method 
omniOrbPOA::dispatch_to_sa (in poa.cc), which holds a mutex on 
omniServantActivatorTaskQueue while calling incarnate method inside 
application code. If this in turn needs the servant activator again, 
then we get a deadlock on any pthread implementation (not on Windows, 
though).
We cannot prevent this since it occurs internally to OmniORB. Also it's 
hard to predict, since it occurs whenever a method is called on an obj 
ref which has no servant yet, and I don't know about any public way to 
detect this in advance (the process object table is not public), besides 
the heavy complication of checking it for all methods of all objects.
Is this behavior still present in 4.1 ? Any chance to release that mutex 
or is there any other trick possible ?
Thanks -- Renzo Tomaselli





More information about the omniORB-list mailing list