On Mar 23, 2010, at 8:22pm, Mohit Anchlia wrote:

How can I enable wire logging such that it gets logged only when this
problem occurs? Is there a way?

I don't think so.

And you actually want the logs from right _before_ the problem occurs, as that's when you'll see things like the time of the last request made that succeeded.

-- Ken

On Tue, Mar 23, 2010 at 4:01 PM, Ken Krugler
<[email protected]> wrote:
I haven't used HttpClient 3.1 for a while now, so I'm not up on the typical
connection management problems.

I don't think that two threads will share the same connection. If the server happens to close a connection in between requests, and the connection is being reused (which is typical) then socket exceptions can and do happen. E.g. if somebody tweaked the server config to reduce the keep-alive time,
then you'd start seeing an increased number of these.

You could turn on wire logging, and try to capture a trace of what happens
during one of these exceptions.

-- Ken

PS - With HC 4.0, all of my connection management issues were my fault, in
the end :)

On Mar 23, 2010, at 3:20pm, Mohit Anchlia wrote:

We are using httpclient in tomcat. We do several requests per sec.
Recently we started to see increasing number of "reset" execptions.
For some reason I am starting to think that it could be because of how
HttpClient is handling "closeIdleConnections". It looks like there
could be a timing issue. For eg: Request A got connect x1 but some
other thread that executed closeIdleConnections got rid of x1. Now
when Request A tried to execute x1 it got reset. Has anyone seen any
such problem before? Only other option would be to grab netstat and
tcpdump as a last resort.

----
java.net.SocketException: Connection reset
      at java.net.SocketInputStream.read(SocketInputStream.java:168)
at java.io.BufferedInputStream.fill(BufferedInputStream.java: 218) at java.io.BufferedInputStream.read(BufferedInputStream.java: 235) at org.apache.commons.httpclient.HttpParser.readRawLine(Unknown
Source)
at org.apache.commons.httpclient.HttpParser.readLine(Unknown Source) at org.apache.commons.httpclient.HttpConnection.readLine(Unknown
Source)
      at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager $HttpConnectionAdapter.readLine(Unknown
Source)
      at
org.apache.commons.httpclient.HttpMethodBase.readStatusLine(Unknown
Source)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(Unknown
Source)
at org.apache.commons.httpclient.HttpMethodBase.execute(Unknown
Source)
      at
org .apache .commons.httpclient.HttpMethodDirector.executeWithRetry(Unknown
Source)
      at
org .apache.commons.httpclient.HttpMethodDirector.executeMethod(Unknown
Source)
at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown
Source)
at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown
Source)
---

On server side we don't see such a request coming in.

Which I think is expected, if the server has closed the connection and
that's why you're getting this exception.

Server side seem
to have enough capacity

I'd check the keep-alive settings for the server.

and these errors have occurred even during non
busy hours. I am suspecting something to do with how keep alive is
being handled.

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


--------------------------------------------
Ken Krugler
+1 530-210-6378
http://bixolabs.com
e l a s t i c   w e b   m i n i n g





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


--------------------------------------------
Ken Krugler
+1 530-210-6378
http://bixolabs.com
e l a s t i c   w e b   m i n i n g





---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to