Calling a webservice method on port in CLOSE_WAIT establishe

Posted by jquerijero on 15-May-2018 16:16

I noticed that when a webservice port switches to CLOSE_WAIT because of inactivity then later on you try to call another webservice method, the act of calling a method establishes a new connection and thus a new port number. This leaves the original port in CLOSE_WAIT status.

Is this an expected behavior of port, or is this a Progress implementation? The problem is that the port in CLOSE_WAIT status lingers on and never freed up until the application is closed.

Or better yet, is there a way to check for the port status before I make my method call?

Posted by Robin Brown on 01-Jun-2018 11:41

The related bug number is PSC00340741, fixed in 11.7.0

All Replies

Posted by Matt Baker on 15-May-2018 16:56

Most (all?) OS's have a linger timeout before a socket is completely cleaned up.  This is to let the OS handle any stray packets that may be coming in over the network even after the application has indicated it is done with the socket.  You can control it by setting socket option SO_LINGER to 0.

Posted by jquerijero on 15-May-2018 17:31

Unfortunately, it lingers on forever (throughout the lifetime of the application) it seems. Ports in CLOSE_WAIT status accumulate throughout the day.

From the KB, to address this left over port in CLOSE_WAIT, it is recommended to disconnect, and delete porttype and webservice handles. However, if the new connection (new port assignment) is established implicitly during a method call then there is no way for the program to issue a disconnect.

Posted by Brian K. Maher on 16-May-2018 05:58

Joseph,
 
I would consider that to be a bug.  Please open a case with support.
 
Brian Maher
Principal Engineer, Technical Support
Progress
Progress
14 Oak Park | Bedford, MA 01730 | USA
phone
+1 781 280 3075
 
 
Twitter
Facebook
LinkedIn
Google+
 
 
ProgressNext2018_Email_Signature
 

Posted by jquerijero on 16-May-2018 10:29

Case is created. Thanks,

Posted by jquerijero on 16-May-2018 10:32

I believe this is the TIME_WAIT status and not the CLOSE_WAIT status.

[quote user="Matt Baker"]

Most (all?) OS's have a linger timeout before a socket is completely cleaned up.  This is to let the OS handle any stray packets that may be coming in over the network even after the application has indicated it is done with the socket.  You can control it by setting socket option SO_LINGER to 0.

[/quote]

Posted by gus bjorklund on 16-May-2018 12:54

CLOSE_WAIT means the socket is being shut down and the server is waiting for the client to perform a close () call.

Posted by jquerijero on 01-Jun-2018 11:26

No related bug number, but we are going to test this on 11.7. Per support, the issue is not occurring in 11.7. We are still using 11.6.

Posted by Robin Brown on 01-Jun-2018 11:41

The related bug number is PSC00340741, fixed in 11.7.0

This thread is closed