[omniORB] Timeout of _non_existent ?

Duncan Grisby dgrisby@uk.research.att.com
Tue, 28 Aug 2001 15:35:54 +0100


On Tuesday 28 August, "Tim Ward" wrote:

[...]
> (1) It appears to be OmniORB specific and one might have preferred a
> standard solution to what is obviously an orb-independent problem. Is this a
> hole in the design of Corba?

The new(ish) Real Time CORBA spec adds a standardised interface to
some of these things, but omniORB won't be supporting that any time
soon.

> 
> (2) It's not clear to me from the documentation what the scope of
> callTimeOutPeriod() is:

It's a global configuration affecting the whole process.

If you need to do your existence check in a way that doesn't set the
timeout too low for other calls, you'll have to use your own thread to
do the _non_existent call. If it doesn't return in time, don't try to
kill the thread -- that will cause all sorts of grief -- but just wait
until it dies of its own accord. The situation of _non_existent taking
ages to fail should be rare enough that having an extra thread around
for a minute or two shouldn't matter.

> Also we have observed the following "feature" of using callTimeOutPeriod():

[...]
> What happens next is that the server sees a second invocation of the method,
> ie something seems to be doing a retry. (Which has been queued up somewhere
> as the client code has long since lost interest in this operation.) This
> isn't a big deal for our system, but we are curious to know what is doing
> the retrying and what control we might have over it?

The "feature" is a consequence of the way omniORB 3 manages
connections. Sai-Lai explains it here:

  http://www.uk.research.att.com/omniORB/archives/2000-12/0146.html

Cheers,

Duncan.

-- 
 -- Duncan Grisby  \  Research Engineer  --
  -- AT&T Laboratories Cambridge          --
   -- http://www.uk.research.att.com/~dpg1 --