PDA

View Full Version : HTTP POST over ~3MB gives no response


digerata
09-16-2008, 08:11 AM
Two different applications in the grid, both setup similarly are not receiving HTTP POSTs over about 3MB in size. Both applications receive requests via:

INSSL -> HLB -> Tomcat (Apache + Tomcat + LUX64)

The first application is using a typical multipart form post to a servlet. The second application is using a flash component to do about the same thing (non multipart post).

Both applications process the file in tens of milliseconds after the 2MB upload has finished. In searching the forums I found this topic about setting the timeout of HLB:

http://forum.3tera.com/showthread.php?t=257

But it's not quite the same. We don't appear to be having a timeout issue. I've adjusted the timeout of HLB to an hour, and no change. When sending a 2MB file, the response is immediate in the application log files. Sending a slightly larger file gives no update in the application log files.

Is there a MAX_SOMETHING property I'm missing in either the INSSL or the HLB?

Thanks!

-Mike

digerata
09-16-2008, 03:08 PM
Switching out HLB for HALB didn't fix the problem.

Chris
09-16-2008, 04:25 PM
Have you checked to ensure this is not a limit set within php/java/tomcat etc ?

The default size limit for tomcat is typically 2MB which would explain anything slightly larger than 2MB not working.

Chris
09-16-2008, 04:32 PM
You should be able to adjust the post size in your server.xml file by the way.

digerata
09-16-2008, 07:08 PM
Yeah, that's been covered...

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" maxPostSize="2097152000000" />

I originally had 0 for the value. But just to be on the safe side I went and took the default value and added a few zeros behind it. No change either way. Thanks for the suggestion though.

-Mike

digerata
09-17-2008, 11:54 AM
Troubleshooting this further, I ran tcpdump on the tomcat appliance. I found that when the browser said the upload was complete, tomcat was still receiving bytes for the upload. ??!!

I thought then maybe I hadn't provided enough resources for my INSSL and HALB. I gave each a full CPU and 512M. Restarted the application and tried it again.

No luck.

I ran tcpdump on INSSL and HALB. Both were exhibiting the same behavior with the increased resources.

Then I tried tcpdump on the client. It turns out that there are still bytes being uploaded there also! But the browser reports it as complete?? I double checked to make sure I'm not running any antivirus or local proxy that would cache the upload... Nope.

Unfortunately, I can't reproduce this with tomcat installed locally. I'm going to try tomcat on a different server than AppLogic. But now at least I know the problem is with the browser. I believe AppLogic is off the hook for this. Sorry for the noise!

-Mike

Chris
09-17-2008, 11:58 AM
Shoot me a pm if you can't reproduce the problem anywhere else and want to do a quick test on another grid.

digerata
09-18-2008, 08:12 AM
Thanks, Chris! That's very generous of you. However, I was able to get it setup on a development server with enough distance between us to reproduce the issue. For any developers out there, I suspect the problem is between Spring WebMVC (on the server side) and SWFUpload (on the clientside). And it only shows up if you are crossing a slow network.