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