I don't agree with this at all.  When I see software just hang, I tend
to think of it as a bug, rather than go digging through piles of
documentation, and/or source code to hopefully find the "don't make my
code hang indefinitely" flag.  :-)

I would greatly prefer the following:
1) Set a reasonable default (60 sounds ok, to me, but a vote might be
nice)
2) Catch the IOException, and rethrow with a more detailed error message
(Eg. "Socket timed out... Axis Call Timeout is defaulting to x, read doc
xyz for further information")
3) Make sure to thoroughly document all timeout related issues

Again, the logic is to make sure that the code doesn't hang permanently
by default (confusing developers, esp. the less experienced variety),
while still making the behaviour clear for those who NEED indefinite
timeouts.

Of course, this is coming from someone who thinks that setting it to
zero at any time would be ridiculous.  :-)   I can see setting it to 4
hours, or somesuch for a long-running call, but 0 just invites
mysterious lockups.

Thanks,
Jesss



On Mon, 2003-07-14 at 10:53, Doug Davis wrote:
> 
> 
> 
> As you indicated, the value you pick will never make everyone happy. The
> best you can hope for is to make sure that there are sufficient APIs such
> that people who use the DIIs, stubbies or whatever can get access to that
> setting easily.  Personally, I think Axis should default to "0" (no
> timeout) because by default I would want the system to be as
> lenient/tolerant as possible - and if someone is running in an environment
> that requires stricter controls they can set it as such - picking any value
> other than zero give preference to whatever machine/environment the axis
> developer who wrote that line of code happens to be using at that moment.
> -Dug
> 
> 
> Tom Jordahl <[EMAIL PROTECTED]> on 07/14/2003 10:35:55 AM
> 
> Please respond to [EMAIL PROTECTED]
> 
> To:    "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
> cc:
> Subject:    RE: read timeout
> 
> 
> 
> For the record, I hard coded this default and it wasn't a mistake. :-)  I
> asked for feedback at the time the change was made and I believe I got
> consensus that 60 seconds was reasonable.
> 
> http://nagoya.apache.org/bugzilla/show_bug.cgi?id=18277
> 
> What would be a better default?  2 minutes?  5 minutes?  10 minutes? (ack!)
> 
> Speaking as someone who embeds Axis in a multi-threaded, request serving,
> application server, 60 second timeouts are about all we would tolerate
> unless the user asks for longer.  I understand that my use case may be
> different from non-user interactive, 'background' processing.
> 
> --
> Tom Jordahl
> Macromedia Server Development
> 
> -----Original Message-----
> From: Doug Davis [mailto:[EMAIL PROTECTED]
> Sent: Saturday, July 12, 2003 12:39 AM
> To: [EMAIL PROTECTED]
> Subject: Re: read timeout
> 
> 
> 
> 
> 
> 
> Yup - as soon as I sent my note I noticed it in MessageContext too.  I
> agree, it sure seems like a mistake to me.
> -Dug
> 
> 
> Thomas Sandholm <[EMAIL PROTECTED]> on 07/12/2003 12:31:03 AM
> 
> Please respond to [EMAIL PROTECTED]
> 
> To:    [EMAIL PROTECTED], [EMAIL PROTECTED]
> cc:
> Subject:    Re: read timeout
> 
> 
> Yes for some reason a 60sec socket read timeout is hardcoded in the
> MessageContext class. I think this is a mistake personally, and it has
> caused our users a lot of problems too. The default timeout should at least
> 
> be configurable without having to change the timeout property on every stub
> 
> you are calling as the FAQ
> http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages/JavaTimeout
> explains.
> We ended up writing a handler that allows you to set a system property to
> change the default timeout.
> /Thomas
> At 08:51 PM 7/11/2003 -0600, Doug Davis wrote:
> 
> 
> 
> 
> 
> >Since Axis 1.1 rc2 something changed that is causing my requests that take
> >a long time (over say 3 minutes) to complete to timeout with:
> >java.io.InterruptedIOException: Read timed out
> >         at java.net.SocketInputStream.socketRead(Native Method)
> >         at java.net.SocketInputStream.read(SocketInputStream.java:113)
> >         at java.io.BufferedInputStream.fill(BufferedInputStream.java:202)
> >         at java.io.BufferedInputStream.read(BufferedInputStream.java:220)
> >         at
> >org.apache.axis.transport.http.HTTPSender.readHeadersFromSocket(HTTPS
> >ender.java:506)
> >         at
> >org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:127)
> >
> >         at
> >com.ibm.wstk.axis.handlers.WSTKHTTPSender.invoke(WSTKHTTPSender.java:
> >37)
> >         at
> >org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg...
> >
> >In rc2 the client would wait forever, or at least long enough for me to
> >never have noticed a problem, but now my client requests timeout after
> >about 2 minutes.  In looking thru the code I don't see anything obvious
> >that's changed - does anyone know of anything that was changed that might
> >cause this new behavior?
> >
> >-Dug
> 
> 
> 
-- 
=======================================
Jess Sightler
Senior Developer
Exim Technologies
131 Falls Street
Greenville SC 29601
Phone: 864-679-4651
=======================================



Reply via email to