Re: Re (progress): no instance available due to timeout
Re: Re (progress): no instance available due to timeout
- Subject: Re: Re (progress): no instance available due to timeout
- From: Chuck Hill <email@hidden>
- Date: Mon, 17 Apr 2006 19:14:12 -0700
Hi Baiss,
On Apr 17, 2006, at 11:04 AM, Baiss Eric Magnusson wrote:
Chuck,
Thanks much for below, things are better.
The timeouts I have worked with are:
sun.net.client.defaultReadTimeout=15000
in the Properties file loaded in Web Server, this time in milli-
seconds
Receive timeout: 180
in the Adaptor Settings of JavaMonitor, this time in seconds
I would have probably gone with something like 20 or 30 seconds which
is high enough compared to the other 15 second timeout.
and
Lifebeat Interval: 120 of the Instance Settings of JavaMonitor, the
Lifebeat interval doesn't seem to have an affect in the overall
situation.
I would not expect it to.
By setting the <Receive timout> to 120, from its default, I was
able to trap the <java.net.SocketTimeoutException>.
IIRC, the default is 15 seconds so you may have set it higher than
needed. 180 seconds will impede error reporting to the user when
there really is no instance available.
However the Axis call is always failing on the first stock read
attempted
and
the exception always occurs 60 seconds after I make the call.
Might be an initialization delay. You could look a creating a
"setup" call when the app launches (see ApplicationDidFinishLaunching
notification in Application.
So, I don't know where the 60 seconds is coming from?
Again, sound like a time out.
And, is it possible the Axis stuff
"http://services.xmethods.com:80/soap";
is just unavailable a lot of the time?
Certainly. I would not want to rely on this.
Chuck
On Apr 14, 2006, at 7:45 PM, Chuck Hill wrote:
On Apr 14, 2006, at 11:24 AM, Baiss Eric Magnusson wrote:
I am having more problems with the Axis stockquote code. The
previous timeout settings worked for a while.
What did you set them to?
I get <no instance available> back at the browser page due to a
timeout caused by the line of code
Float ret = (Float) call.invoke( new Object[] { symbol } );
not responding.
That sounds like the woadaptor Receive timeout is less than the
java.net.whatever timeout you set before. The Java one should be
less.
If you refresh the page I will trap the exception
<java.net.SocketTimeoutException>
and calmly inform the user that the stock quote service is
currently unavailable.
How can I trap the first problem <no instance available> in the
java code without the user having to force a refresh?
You can't. The first problem is reported by the woadaptor (e.g.
the CGI or mod_webobjects). You can't have any control over that
from your application. The thing to do is to adjust the timeouts
relative to each other so that the socket timeout happens before
the receive timeout.
Chuck
----
Baiss Eric Magnusson
<http://www.Track-Your-Finances.com>
<http://www.CascadeWebDesign.com>
--
Coming in late 2006 - an introduction to web applications using
WebObjects and Xcode http://www.global-village.net/wointro
Practical WebObjects - for developers who want to increase their
overall knowledge of WebObjects or who are trying to solve specific
problems. http://www.global-village.net/products/practical_webobjects
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden