[omniORB] unexpected behavior - CORBA automatic retries?

Duncan Grisby duncan@grisby.org
Tue Jun 18 11:50:02 2002


On Sunday 16 June, Adrian Rosoga wrote:

> Thank you all for the help. I played more with the client
> and server. The client indeed retries and sends two
> requests. Only after that the COMM_FAILURE exception is
> raised.
> 
> Just curious, is this a feature or a bug? From the answer
> somebody was given (see the link below) for a similar
> problem, it looks like it is a known issue but "... you'll
> have to live with it for now". Is there any plan for a fix?

It's not really a feature or a bug, but an interaction between two
things. What happens is that you make a successful call (possibly just
the initial LocateRequest that omniORB always does) to the server;
when the call returns, omniORB caches the TCP connection. You then
make another call, which times out. When a reused connection fails,
omniORB retries with a new connection before reporting a
COMM_FAILURE. It has to do that to cope with TCP connections dying due
to transient network failures.

The root of the problem is that omniORB 3 can't distinguish between
communication failures due to timeouts and other problems. omniORB 4
throws TRANSIENT exceptions when timeouts occur, and has other
infrastructure for understanding more about what's going on, so it
doesn't have this problem.

Cheers,

Duncan.

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