Hi,
Quote:
Originally Posted by spsoni
So, when I kill my server application, I was thinking that, server is properly sending callback to client and client is not receiving it. But, after looking at the above trace information, I came to know of the policy that server do not throw any exception to client to let it know that it has received the message after closing.
My client is not receiving any exception from Ice layer on receiving the following message
[ 05/09/08 11:13:20.842 Protocol: received close connection
|
That's not quite correct. The Ice runtime does throw Ice::CloseConnectionException for your twoway invocation upon receiving the close connection message. However, you don't get this exception because the Ice runtime also transparently retries the invocation since it's safe to do so. You can enable Ice.Trace.Retry=1 to see the retry. If you disable retries with Ice.RetryIntervals=-1, you will get the exception.
Quote:
Since I am using IceGrid, on receiving close connection message, client is requesting IceGrid again to restart the server application. But, how do I let my previous async call waiting thread know that there would be no callback, since server has terminated and new server instance will restart.
I do not wish to use timed wait on my client for callback, as it will affect overall performance. Please advice.
Thanks.
|
It's not clear to me what this "previous async call waiting thread" and callback are. Is this another twoway AMI request? Or are you waiting for a callback from the server on one of the client's Ice object? Perhaps you could post the code of your client, it would help understanding what your client is doing.
Cheers,
Benoit.