Tomcat version 7.0.6 listening on local machine 10.3.4.7 and accepting
incoming POST connections from 4 remote machines, 10.12.5.10[2-5].
Configured in standalone mode, using HTTP connector.

Remote machines are sending constant stream of POST messages...~100 kbit/sec.

All POST traffic is accepted and acknowledged, but, RESET packets
cause remotes machines to re-establish new connections, causing errors
on sender's side and slowing down rate of transfer.

Traffic headers show local machine is sending "Connection: close" on
post acknowledgement messages.  Despite fact that remote machines'
POST messages contain "Connection: Keep-Alive" header.

======================
post traffic header ...
======================

POST /myapp HTTP/1.0
HOST: 10.3.4.7:8080
Connection: Keep-Alive
Authorization: Basic Y2VybmVyOnlpbiZ5YW5n
Content-type: multipart/form-data; boundary=----------1803119234
Content-Length: 59970

------------1803119234
Content-Disposition: form-data; name="xml"
<?xml version="1.0" encoding="ISO-
---------------------------------------------------------------------------------------------------------------------------------------

======================
response header ...
======================

------------1803119234--

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Date: Fri, 23 Sep 2011 18:27:25 GMT
Connection: close

======================

># netstat -anp | grep 8080

tcp        0      0 :::8081                     :::*
    LISTEN      23107/java
tcp        0      0 ::ffff:10.3.4.7:8080    ::ffff:10.12.5.103:39809
FIN_WAIT2   -
tcp        0      0 ::ffff:10.3.4.7:8080    ::ffff:10.12.5.104:33033
FIN_WAIT2   -
tcp        0      0 ::ffff:10.3.4.7:8080    ::ffff:10.12.5.102:57077
FIN_WAIT2   -
tcp        0      0 ::ffff:10.3.4.7:8080    ::ffff:10.12.5.105:39624
FIN_WAIT2   -

I've tried various connector configurations and protocols; HTTP, NIO,
connectionTimeout, etc.

Here's what my connector config looks like currently:

 <Connector port=8080 protocol="org.apache.coyote.http11.Http11Protocol"
              connectionTimeout="30000"
              connectionLinger="100"
              keepAliveTimeout="3000"
              maxKeepAliveRequests="2000"
              disableUploadTimeout="true"
              maxThreads="500"
              minSpareThreads="150"
              maxSpareThreads="300"
              acceptCount="200"
              socket.soKeepAlive="yes"
              enableLookups="false" />

===========================================

Why fin_wait2 state?  I would expect to see ESTABLISHED connections
and and Keep-Alive in response header.

Why are RESET packets being sent back to remote machines?


Thanks for any feedback you can provide.

-wr

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to