[omniORB] LOCATION_FORWARD problem

Duncan Grisby duncan at grisby.org
Wed Feb 29 12:50:34 GMT 2012


On Mon, 2012-02-27 at 08:19 +0100, Zoran Djekic wrote:

> I have idea to dispatch requests from my DispatcherServer to Server-s
> that will process that requests. DispatcherServer and Server have the
> same interfaces but in implementation of DispatcherServer functions is
> logic for deciding on witch Server to forward request using
> LOCATION_FORWARD(Server_ref, false).  Problem is that when I throw
> LOCATION_FORWARD client that invoked function on DispatcherServer
> don't use reference of DisatcherServer any more (in next function
> calls) but reference that is supplied in LOCATION_FORWARD exception.
> That means that DispatcherServer is bypassed in this communication.
> What should I do to make Client always call functions on reference of
> DispatcherServer?

That's the way location forwards are meant to work -- the new reference
is used until it fails, at which point the original reference is
retried. If that wasn't the behaviour, it would be impossible to build
implementation repositories or object migration schemes.

Can you just implement the forwarding behaviour at an application level?
Have the DispatcherServer return a reference to the Server object and
then explicitly do the call to it from the client?

Cheers,

Duncan.

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --





More information about the omniORB-list mailing list