[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.