[omniORB] Deferred exception in oneway method

Ulf Stoermer ulf@emi.yamaha.co.jp
Thu Apr 3 15:19:01 2003


Hi

The same was already asked some time ago, this is what Duncan said about it:
#>       I understand that oneway is not reliable way of calling
#>       functions. But I have following situation with omniOrb 3.0.4:
#>       If server is suddenly disconnected, and client execute oneway
#>       call, 1st call always succeeds, on 2nd call client gets an
#>       exception. Is it possible (maybe with some hack) to have exception
at
#>       the first time WITH ONEWAY functions.
#
#I'm afraid not. The way oneways are sent means that any errors that
#come from the TCP connection are not noticed before the oneway call
#returns to the client. It's only on the next call that the socket
#error is noticed. It would be impossible to know how long to wait to
#see if an error occurred.
#
#Notice that it's not sufficient to know that the TCP stack
#successfully sent the packets for the request. If the other side is
#closing the connection at the same time, the TCP end-of-stream
#notification may be in flight over the network at the same time as the
#request. If a TCP connection is closed just after sending a oneway,
#the only way to tell if the server got it or not would be to reconnect
#and ask it.

Cheers

Ulf

> -----Original Message-----
> From: omniorb-list-admin@omniorb-support.com
> [mailto:omniorb-list-admin@omniorb-support.com]On Behalf Of Serguei Kolos
> Sent: Thursday, 3 April 2003 10:29 PM
> To: omniorb-list@omniorb-support.com
> Subject: [omniORB] Deferred exception in oneway method
>
>
> Hi
>
> Probably this is a well known feature of the oneway methods in CORBA,
> but I was unpleasantly surprised when found that the nonexistence of
> the remote object is not  recognized correctly if one doing a oneway
> request to it. Consider the following scenario (I did it using omniORB):
> 1. I started the server which implements oneway method
> 2. start client which calls this method once per 5 seconds
> 3. client calls the method successfully
> 4. I kill the server
> 5. (5 seconds later) client calls the method again ... and does not see
> any problems
> 6. (5 seconds later) client calls the method again ... and got
> SystemException
>
> Does anybody know is it possible to get rid of the step 5 in this
> scenario?
>
> Cheers,
> Sergei
>
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list@omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>