[omniORB] Local calls, servant locators and POA::create_reference
Chris Newbold
cnewbold@laurelnetworks.com
Mon, 23 Oct 2000 08:06:39 -0400
In my application, there is an entire collection of objects which
use a servant locator to handle invocations. (I don't think its
relevant, but the reason for doing so is that I want to pool
servant instances since there are 1000's of objects, but only
a handful are ever receiving invocations at any given time.)
I generate object references for all of these objects using
POA::create_reference. Clients obtain these references through
various factory and collection interfaces.
All of this appears to work just fine; I successfully handle
invocations for any of my objects with minimal overhead.
However, I've noticed that omniORB doesn't seem to recognize
that it can short-circuit calls to these objects when they are
in the same process. It winds up doing a full-blown remote
dispatch and context switch. (omniORB doesn't seem to have any
problems recognizing when other, "normal" objects are local.)
Have I done something wrong in my implementation? Is this a
bug in omniORB? A limitation? Needless to say, this makes my
solution somewhat less attractive, since the overhead of
making a local call is now quite high...
(We're now running omniORB 3.0.2)
-Chris Newbold
Laurel Networks, Inc.