You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@commons.apache.org by "Norrod, Dennis G Mr Veridian-MRJ" <De...@DET.AMEDD.ARMY.MIL> on 2003/07/31 14:15:37 UTC

RE: [HttpClient] Uploading large files (~>30MB) throws SocketExce ption

Hi Adrian,

Sorry it took so long to get back. Our admins broke my development web server! (yeah, that's it...) Anyway, I can't dup the problem anymore. So, never mind! I updated my client system to Windoze 2000 SP4 (from SP3) and the web server (Oracle IAS) was updated with the latest patch. Maybe one or both fixed the problem? Anyway, thanks for the suggestions - I'll keep them handy for my next problem.

Re: Suggestion #4; Can I use chunked-encoding with MultipartPostMethod? I'm using Commons FileUpload in the target servlet, which (I think) requires a multipart post.

Thanks.
Dennis

 -----Original Message-----
From: 	Adrian Sutton [mailto:Adrian.Sutton@Ephox.com] 
Sent:	Thursday, July 10, 2003 7:24 PM
To:	'Jakarta Commons Users List'
Subject:	RE: [HttpClient] Uploading large files (~>30MB) throws SocketExce ption

By the sound of it the connection is being closed unexpectedly (duh...).
It's hard to tell why though.  Here's a few options:

1. HttpClient closes the connection (very unlikely because I'm pretty
certain we didn't impose that limit)

2. VPN software closes the connection.  Likely because it happens to me here
at work - VPN session stays live but individual connections drop out.

3. The servlet/server is closing the connection - fairly unlikely because it
works with IE.

Obviously those unlikely options are still quite possible.  I'd try:

1. eliminating the VPN software if at all possible
2. uploading to a different servlet (preferably a totally different
implementation on a different server).
3. Use something like proximatron to get a log of exactly what IE is sending
to the servlet then use telnet to send it to the server.  Repeat for
HttpClient's output.  Then compare what IE sends to what HttpClient sends.
4. Make sure you've either set the content length correctly or you're using
Chunked-Encoding (strongly recommend Chunked-Encoding).

I'd also bring this up over on the httpclient-dev list as I seem to be the
only HttpClient developer on this list and nearly all discussion of
HttpClient is over on the dev list anyway.  Feel free to just redirect this
thread over there since I'm on both lists anyway.

Hope that helps,

Adrian Sutton, Software Engineer
Ephox Corporation
www.ephox.com 

-----Original Message-----
From: Norrod, Dennis G Mr Veridian-MRJ
[mailto:Dennis.Norrod@DET.AMEDD.ARMY.MIL]
Sent: Friday, 11 July 2003 12:35 AM
To: commons-user@jakarta.apache.org
Subject: [HttpClient] Uploading large files (~>30MB) throws
SocketException


Hi Guys,

I have code that uses MultipartPostMethod to upload files to a servlet that
uses FileUpload. All file transfers to localhost work fine. Files <30MB,
transferred to a remote server, work fine. Files >30MB fail with this error
(from HttpClient.executeMethod(HttpMethod)):

java.net.SocketException: Software caused connection abort: socket write
error

The servlet on the remote server runs in Oracle's 9iAS with OC4J. All file
transfers to the remote server via an IE form work fine. Looking at the
HttpClient wire trace, everything looks normal - until the data just stops
getting sent. I've tried setting HttpClient.setTimeout() and
HttpClient.setConnectionTimeout() to zero and 9999999 - same results.

I'm using HttpClient 2.0 Beta 2.

An added twist, though I doubt it matters: I have to go through a VPN to get
to the remote server; I'm already connected to it - the code I wrote doesn't
worry about it.

Any ideas on other things I can look at?

Thanks.
Dennis

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