[omniORB] Timed-out operation retries instead of issuing COMM_FAILURE
Claudio Natoli
claudio.natoli@memetrics.com
Tue, 3 Jul 2001 18:32:46 +1000
Hello all,
we are witnessing the following behaviour using omniOrb 3.0.2 on the
"client" side with another vendor orb as the "server". This behaviour is
somewhat contrary to our expectations, and are wondering whether we have
simply misinterpreted the documentation regarding the omniOrb connection
model, or whether the vendor orb is misbehaving when omniOrb attempts to
time-out a remote call.
Using a scanGranularity of 1, a clientSide callTimeOutPeriod of 5, and with
all other parameters at the respective default, we call method Foo; a
contrived method which simply waits for 60 seconds before returning.
Rather than seeing a single call to Foo on the server side followed by a
COMM_FAILURE on the client side 5 seconds later (as we expected), we see:
* a call to Foo on the server side,
* the server side notices a connection shutdown 5 seconds
later, immediately followed by
* a second call to Foo, and finally
* the COMM_FAILURE is reported on the client side some 10
seconds after the initial call
>From this behaviour, one would infer that the first call to Foo somehow
resulted in a TRANSIENT exception (installing a transientExceptionHandler
confirms this), which by the default behaviour of the proxy object causes a
retry and hence the second call to Foo.
What we fail to understand is why the initial call ever raised a TRANSIENT
exception, and, if this is indeed the correct behaviour (which we suspect is
not the case), why the second call does not! As the remote object does not
issue any location forwarding messages, and does not report a
CORBA::TRANSIENT, we suspect that (gross misunderstandings on our part
aside) the other orb is misbehaving in some manner when shutting down the
connection from the original call.
We would be very appreciative if someone could guess as to what may be the
cause, and thus point us in the right direction with our vendor (or simply
slap our wrists for missing something obvious :-)
Cheers,
Claudio