hc-httpclient-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gustavo Hexsel <ghex...@sagebrushcorp.com>
Subject RE: Timeout
Date Thu, 16 Dec 2004 17:50:45 GMT
  I've had the same problem though.  It might be a JDK bug.  Running Sun's
JDK 1.5 (build 1.5.0-b64).  Happens on 1.4.2 too.



  The code is:
GetMethod method = new GetMethod();
    ... set other config
method.getParams().setSoTimeout(remainingTime);
    ... set host, port, prepare state
int statusCode = client.executeMethod(hostConfig, method, state);
    ... verify if it is redirect, etc (manual redirects)
while ((len = response.read(buffer)) > 0) {
    ... add the result to a stringbuffer for later multiline regex parsing
}



  This is the log I get  (timeout is about 10 seconds later, the default -
not 150s as I set in the method!!!).  Not that the timeout seems to be on
"read", not "connect":

... the following are the defaults being set in init
DEBUG| params.DefaultHttpParams - Set parameter http.connection.timeout =
20000
DEBUG| params.DefaultHttpParams - Set parameter http.socket.timeout = 10000
... my preprocessors preparing a URL
DEBUG| step.BaseStep - Preprocessor chain finished.  URL to be called:
http://dewey.chesterfield.k12.va.us/TLCScripts/interpac.dll?CrossField&FormI
d=0&LimitsId=0&Config=all&ItemsPerPage=20&StartIndex=0&Term1Data=tree&Term1F
ield=7&Operator1=0&Term2Data=&Term2Field=7&Operator2=0&Term3Data=&Term3Field
=7&TermGrouping=0&ItemsPerPage=10&Branch=0
DEBUG| params.DefaultHttpParams - Set parameter http.socket.timeout = 149938
DEBUG| engine.HttpEngine - Http State = [ |  | ]
DEBUG| httpclient.HttpClient - enter
HttpClient.executeMethod(HostConfiguration,HttpMethod,HttpState)
DEBUG| httpclient.MultiThreadedHttpConnectionManager - enter
HttpConnectionManager.getConnectionWithTimeout(HostConfiguration, long)
DEBUG| httpclient.MultiThreadedHttpConnectionManager -
HttpConnectionManager.getConnection:  config =
HostConfiguration[host=http://dewey.chesterfield.k12.va.us], timeout = 20000
DEBUG| httpclient.MultiThreadedHttpConnectionManager - enter
HttpConnectionManager.ConnectionPool.getHostPool(HostConfiguration)
DEBUG| httpclient.MultiThreadedHttpConnectionManager - enter
HttpConnectionManager.ConnectionPool.getHostPool(HostConfiguration)
DEBUG| httpclient.MultiThreadedHttpConnectionManager - Allocating new
connection,
hostConfig=HostConfiguration[host=http://dewey.chesterfield.k12.va.us]
DEBUG| httpclient.HttpMethodDirector - Attempt number 1 to process request
DEBUG| httpclient.HttpConnection - enter HttpConnection.open()
DEBUG| httpclient.HttpConnection - Open connection to
dewey.chesterfield.k12.va.us:80
DEBUG| httpclient.HttpMethodBase - enter HttpMethodBase.execute(HttpState,
HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.writeRequest(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.writeRequestLine(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.generateRequestLine(HttpConnection, String, String, String,
String)
DEBUG| wire.header - >> "GET
/TLCScripts/interpac.dll?CrossField&FormId=0&LimitsId=0&Config=all&ItemsPerP
age=20&StartIndex=0&Term1Data=tree&Term1Field=7&Operator1=0&Term2Data=&Term2
Field=7&Operator2=0&Term3Data=&Term3Field=7&TermGrouping=0&ItemsPerPage=10&B
ranch=0 HTTP/1.1[\r][\n]"
DEBUG| httpclient.HttpConnection - enter HttpConnection.print(String)
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[])
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[], int,
int)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.writeRequestHeaders(HttpState,HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.addRequestHeaders(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.addUserAgentRequestHeaders(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.addHostRequestHeader(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - Adding Host request header
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.addCookieRequestHeader(HttpState, HttpConnection)
DEBUG| httpclient.HttpState - enter HttpState.getCookies()
DEBUG| cookie.CookieSpec - enter CookieSpecBase.match(String, int, String,
boolean, Cookie[])
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.addProxyConnectionHeader(HttpState, HttpConnection)
DEBUG| wire.header - >> "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0;
Windows NT 5.1)[\r][\n]"
DEBUG| httpclient.HttpConnection - enter HttpConnection.print(String)
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[])
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[], int,
int)
DEBUG| wire.header - >> "Host: dewey.chesterfield.k12.va.us[\r][\n]"
DEBUG| httpclient.HttpConnection - enter HttpConnection.print(String)
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[])
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[], int,
int)
DEBUG| httpclient.HttpConnection - enter HttpConnection.writeLine()
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[])
DEBUG| httpclient.HttpConnection - enter HttpConnection.write(byte[], int,
int)
DEBUG| httpclient.HttpConnection - enter
HttpConnection.flushRequestOutputStream()
DEBUG| wire.header - >> "[\r][\n]"
DEBUG| httpclient.HttpConnection - enter
HttpConnection.flushRequestOutputStream()
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.readResponse(HttpState, HttpConnection)
DEBUG| httpclient.HttpMethodBase - enter
HttpMethodBase.readStatusLine(HttpState, HttpConnection)
DEBUG| httpclient.HttpConnection - enter HttpConnection.readLine()
DEBUG| httpclient.HttpParser - enter HttpParser.readLine(InputStream,
String)
DEBUG| httpclient.HttpParser - enter HttpParser.readRawLine()
DEBUG| httpclient.HttpMethodDirector - Closing the connection.
DEBUG| httpclient.HttpConnection - enter HttpConnection.close()
DEBUG| httpclient.HttpConnection - enter
HttpConnection.closeSockedAndStreams()
DEBUG| httpclient.HttpMethodDirector - Method retry handler returned false.
Automatic recovery will not be attempted
DEBUG| httpclient.HttpConnection - enter HttpConnection.releaseConnection()
DEBUG| httpclient.HttpConnection - Releasing connection back to connection
manager.
DEBUG| httpclient.MultiThreadedHttpConnectionManager - enter
HttpConnectionManager.releaseConnection(HttpConnection)
DEBUG| httpclient.MultiThreadedHttpConnectionManager - Freeing connection,
hostConfig=HostConfiguration[host=http://dewey.chesterfield.k12.va.us]
DEBUG| httpclient.MultiThreadedHttpConnectionManager - enter
HttpConnectionManager.ConnectionPool.getHostPool(HostConfiguration)
DEBUG| util.IdleConnectionHandler - Adding connection at: 1103218848281
DEBUG| httpclient.MultiThreadedHttpConnectionManager - Notifying no-one,
there are no waiting threads
DEBUG| engine.HttpEngine - Socket timeout on Http Method execution or stream
read
java.net.SocketTimeoutException: Read timed out
	at java.net.SocketInputStream.socketRead0(Native Method)
	at java.net.SocketInputStream.read(SocketInputStream.java:129)
	at java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
	at java.io.BufferedInputStream.read(BufferedInputStream.java:235)
	at
org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:76)
	at
org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:104)
	at
org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:11
12)
	at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager$HttpConnect
ionAdapter.readLine(MultiThreadedHttpConnectionManager.java:1379)
	at
org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.j
ava:1831)
	at
org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.jav
a:1594)
	at
org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:999
)
	at
org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethod
Director.java:382)
	at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDir
ector.java:168)
	at
org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:393)
	at
com.sagebrushcorp.oberon.searchengine.engine.JakartaHttpClientBridge.execute
Method(JakartaHttpClientBridge.java:83)
...



-----Original Message-----
From: Oleg Kalnichevski [mailto:olegk@apache.org]
Sent: December 16, 2004 9:14 AM
To: HttpClient User Discussion
Subject: Re: Timeout


Ilya,

I seriously doubt that this is the case. See for yourself

http://jakarta.apache.org/commons/httpclient/3.0/xref/org/apache/commons/htt
pclient/HttpMethodDirector.html#369

Oleg

On Thu, Dec 16, 2004 at 05:44:05PM +0200, Ilya Kharmatsky wrote:
> I need to set the timeout for read/write for specific method.
> If I'm using HttpClientParameters - everything works as expected,
> after
> 
> HttpClient client = new HttpClient();
> client.getParams().setSoTimeout(1000);
> GetMethod method = new GetMethod("http://www....");
> client.executeMethod(method);
> 
> ....
> 
> In case, the server's response has been "too slow" - the 
> SocketTimeoutException
> will be thrown.
> 
> But, if I want to set same for single HttpMethod (by using its 
> HttpMethodParameter)
> the timeout is ignored:
> 
> HttpClient client = new HttpClient();
> GetMethod method = new GetMethod("http://www....");
> method.getParams().setSoTimeout(1000);
> client.executeMethod(method);
> 
> Any ideas?
> 
> Thanks,
> Ilya
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Mime
View raw message