Let me explain what we faced or observing during IS send http request to target :
- Consider there will be a healthy TCP connection socket opened for example 12345 from IS to the target system to send HTTP requests.
- After target system reaches its idle timeout, it will request to close this TCP socket connection 12345 (issues FIN,ACK) and our IS issues ACK back.
- Now immediately there will be a HTTP request A before IS socket pool sweeper is executed to close the connection 12345. So, IS will post this HTTP request A to target with existing TCP connection 12345 (as its not yet closed by sweeper) and waits for the response from target.
- As per wireshark TCP dump, there is a [RST, ACK] from target system to IS and new connection say 67890 is created from IS to target system to post same HTTP request A again. (Duplicate request?)
Question is :
- Which system is initiating this new connection to post the http request again? is it pub.client.http or the TCP protocol?
- Is this a expected behavior to resend HTTP request A on TCP [RST,ACK] packet from target system which has already been sent? Can we configure this in IS?
Thanks in advance for your reply.
Note: To know on what is socket pool sweeper keepAliveTimeout in pub.client:http - #17 by Niranth_NS