axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Montabert, Olivier" <olivier.montab...@hp.com>
Subject RE: Client operation call interrupt - IMPORTANT
Date Tue, 01 Feb 2005 11:21:56 GMT


> -----Original Message-----
> From: Steve Loughran [mailto:stevel@apache.org] 
> Sent: Tuesday, February 01, 2005 11:17 AM
> To: axis-dev@ws.apache.org
> Subject: Re: Client operation call interrupt - IMPORTANT
> 
> 
> Montabert, Olivier wrote:
> > Hi Steve,
> > 
> > I am not sure that a polling is a good solution.
> > 
> > Here are some additional details:
> > The server indeed keeps the getValue call blocking
> > for a given delay (configurable). After this delay 
> > the call returns. (The client calls timeout is also 
> > set to a configurable delay. But indeed no timeout 
> > will occur.)  
> > But other operations (control for example) might 
> > also take some time to proceed. 
> > The problem is that the client application has
> > to exit at some time. Therefore, the client require
> > a way to stop the ongoing operation calls in order
> > to exit smoothly (as fast as possible).
> > Finally, time consuming control operations for 
> > example could not be implemented through pooling...
> > 
> > Nevertheless, the problem of repeated "instant"
> > polling is that it will generate useless network 
> > traffic + consume resources just to know that 
> > there is nothing to get...
> 
> 
> true. but if you use keepalives on the TCP link you generate useless 
> traffic; if you dont your client wont ever know that the 
> server at the 
> far end has ceased to exist.
> 

Indeed, I don't really know the underlying implementation
that has been made for Axis...
My guess of the client call underlying implementation is:
- AXIS generates a SOAP envelope and body.
- AXIS opens a socket to the web server (using the 
  end-point URL).
- Sends an HTTP request and waits for the reply on the
  same socket.
[ ... No further traffic occurs ... ]
- The reply and the socket close occurs as soon as the
skeleton sends the reply back through the same socket.

Therefore I also use the getValue operation as keepalive 
operation, as it will receive a network exception when the
server crashes. Indeed when the server or the servlet crashes
the socket is closed.

Am I right ?

> > The purpose of this application is to be efficient
> > at runtime, without using complex mechanisms 
> > (architecture) to allow a simple client application 
> > stop.
> > 
> > Thus, is there a way to stop an operation call at 
> > Axis level ?
> 
> Not yet :)
> 

Does Axis use some thread wait/notify mechanisms ?

Does Axis use the user thread to perform the operation 
call ?

Thanks a lot for your help


Regards,

Olivier Montabert

Mime
View raw message