May 30th, 2010, 07:19 PM
spring integration, tcp listener, CLOSE_WAIT
I am using spring integration to get messages from remote sensors who are using GPRS via battery operated modems. These sensors open the connection, send the message (just like telnet message) and then close the connection. (I have no control over behavior of sensors.
The problem I am encountering that after a long period of time these sensors start to loose battery power and are unable to communicate properly. The symptoms I have is that I have lots of CLOSE_WAIT and ESTABLISHED connections.
I am wondering: Is there a way to specify that these unused connections can be killed. Once the connections hog up the system with lots of close waits, I stop receiving any more inputs.
I have investigated the issue on the internet, there are hints that it could be an error in the server end, but this only happens in my case once the battery starts to degrade.
May 30th, 2010, 09:54 PM
Yes, you have found a bug in the inbound adapter/gateway. The close_wait indicates that the client closed the socket but the OS is waiting for the server to close its end. We are detecting the closure ok but not closing the server side of the socket.
Please create a JIRA, I should be able to get you a fix quickly.
Thanks for finding and reporting this!
May 30th, 2010, 11:26 PM
Thank you for the prompt response.
Issue created (https://jira.springsource.org/browse/INT-1151)