[omniORB] Timeout with oneway calls (Failing faster?)
Sai-Lai Lo
S.Lo@orl.co.uk
22 Sep 1998 12:31:50 +0100
Jim,
Oneway call is just like request-reply except that there is no reply from
the other end. If the ORB detects the connection is broken when the request
is being sent, it does the following:
If the broken connection is a cache connection, i.e. it has been used
previously for other invocations, the ORB would quietly try to reconnect
to the remote address space and retry the request again.
If the reconnect fails, it would throw a COMM_FAILURE.
(With omniORB, you can change this behaviour by installing your own
exception handlers, see the user guide for details.)
The reason why it takes a second or so to raise a COMM_FAILURE is likely to
be cause by NT being slow in reporting connect fail. Not much you can do
about this I'm afraid.
Sai-Lai
>>>>> Jim Redman writes:
> I'm sure that this must of been discussed before, but can't find any
> reference in the archives. This is the latest snapshot on Win NT.
> I have a server that asynchronously sends oneway messages to the clients.
> That sounds backwards, but the clients register to recieve the information.
> This works fine, and fast, I can move thousands of data points per second.
> However when one of the clients is killed the server will try to send
> information. I catch the COMM_FAILURE exception, but this takes a long
> time to be raised, of the order of a second or so. The server appears to
> block while failing.
> The network is reliable, full duplex 100BT, and a successful call completes
> in less than a millisecond. Is there a way to decrease the timeout so that
> it is of the order of 10ms?
> As an aside, why does all this happen with oneway calls anyway? Shouldn't
> they just disappear into the ether, or am I being naive?
--
Dr. Sai-Lai Lo | Research Scientist
|
E-mail: S.Lo@orl.co.uk | Olivetti & Oracle Research Lab
| 24a Trumpington Street
Tel: +44 223 343000 | Cambridge CB2 1QA
Fax: +44 223 313542 | ENGLAND