[omniORB] -ORBclientTimeOutPeriod Bug When The Server Uses A Location Forward Request?

Duncan Grisby duncan@grisby.org
Thu, 16 May 2002 23:32:02 +0100


On Wednesday 15 May, Wilson Jimmy - jiwils wrote:

> Attached is a sample of the trace from the original client that I attached
> when I started this thread.  It appears to be retrying the request
> indefinitely.  That doesn't seem right.  Other than that, it appears that
> omniORB is at least recognizing that it needs to stop the invocation.  Is
> there more to be gleaned from this?

The problem is an interaction between the way omniORB deals with
location forwards and what Orbix is doing. I don't think either ORB is
violating any part of the specification. If omniORB loses contact with
a server to which it has been location forwarded, it throws a
TRANSIENT exception. The default TRANSIENT exception handler retries
the invocation with the original location specified in the IOR, hoping
that it might be forwarded to a different location. That behaviour is
important for coping with object migration when objects move more than
once. (See my PhD dissertation if you want lots of details :-)

The problem with repeated retries is that the Orbix daemon keeps
forwarding omniORB to the same failed object. omniORB keeps going back
and asking the daemon in case it changes its mind...  You can avoid
the problem by installing a different TRANSIENT exception handler.

In omniORB 3, there is no way of telling whether a TRANSIENT you get
is due to a failed forwarded object, or some other reason. In omniORB
4, you can look at the exception minor code to tell.

Cheers,

Duncan.

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