Hi, We are troubleshooting a Java process making Web service call (Axis2 API) to another process IIB broker .Both are on Linux. Problem: After the data transfer, Server sends [FIN,ACK] (frame:66) and client sends back ACK for this. Client does re-transmission of this ACK for fin for 15 times (take nearly 15 mins) and finally RSTs the connection. This is causing Axis API at client is getting thread hung during socket write operation. I tried using persistence and non-persistence connections. Tried changing max connections and max connections to host. No Error on Firewall. On Firewall I can see aged-out status of connections. What does it actually mean if ACK for FIN frame is being re transmitted during 4 phase connection release process? Where should I be looking to fix this? Thanks in advance Naren asked 18 Sep '16, 20:49 narenk edited 18 Sep '16, 20:55 |
One Answer:
The connection is only closed from one side (.61) indicating it wishes to send no more data, while the other side (.165) still has data to send. This data is never ACK'ed. After the retries it gives up with a RST. The one side (.61) should accept this data, or send back RST, indicating the socket is closed. Now the other side (.165) can only assume the packets are lost, and retransmits until it gives up. answered 18 Sep '16, 21:38 Jaap ♦ |
Thank you! Why would .61 close the connection abruptly when there is still data to be send? What should I be looking at .61 to fix this? .61 is on linux, IIB process listens to this.
That is up to the vendor of that application to reveal (and out of scope of this Q&A).