View Single Post
  #6 (permalink)  
Old 05-08-2008
spsoni's Avatar
spsoni spsoni is offline
Registered User
 
Name: Sury P Soni
Organization: Next Digital
Project: Unified Messaging Plattform for Inhouse Products
 
Join Date: Mar 2008
Location: Melbourne, Australia
Posts: 14
Thank you Benoit,

Now I am using Ice3.2.1 on FreeBSD 6.2.

After using Ice.Trace.Protocol=2 property, I was able to see following messages on client and server respectively.

Client Protocol Trace.

Code:
[ 05/09/08 11:13:20.827 Protocol: sending asynchronous request
  message type = 0 (request)
  compression status = 0 (not compressed; do not compress response, if any)
  message size = 1052
  request id = 40
  identity = DbPutInterface
  facet =
  operation = put
  mode = 0 (normal)
  context =  ]
[ 05/09/08 11:13:20.842 Protocol: received close connection
  message type = 4 (close connection)
  compression status = 1 (not compressed; compress response, if any)
  message size = 14 ]

Server Protocol Trace.

Code:
[ 05/09/08 11:15:31.451 Protocol: received request during closing
  (ignored by server, client will retry)
  message type = 0 (request)
  compression status = 0 (not compressed; do not compress response, if any)
  message size = 1052
  request id = 40
  identity = DbPutInterface
  facet =
  operation = put
  mode = 0 (normal)
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

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.
Reply With Quote