Geo SCADA Knowledge Base
Access vast amounts of technical know-how and pro tips from our community of Geo SCADA experts.
Link copied. Please paste this link to share this article on your social media post.
Originally published on Geo SCADA Knowledge Base by Anonymous user | June 10, 2021 03:14 AM
Sockets provide communications between DBserver, drivers, clients and the outside world. As with all resources on computers the possible sockets available for use are limited and if they get used up it can cause problems with ClearSCADA.
By default, on Windows, the ephemeral ports are in the range 1024 to 5000. Ephemeral ports are allocated to processes need to be able to communicate but don't require a specific port number. ClearSCADA uses ephemeral ports for the following communications:
If you run out of sockets the above connections may have problems establishing fully (or at all) and so you will have problems on the system, such as drivers not starting or ViewX not connecting. Remote diagnostic facilities (Remote Desktop, VNC, remote file access, etc) will also likely be affected.
The simplest way to find out the sockets currently in use is to use the inbuilt Windows netstat command.
'netstat -ano' or 'netstat -bn'
The above command will list all active sockets. You will be able to see sockets that are waiting for a connection, have established, are waiting to expire, etc. If you see a large number of sockets and the range 1024-5000 all showing in use this indicates a potential socket issue. Note that netstat shows all sockets, not just those on the ephemeral ports.
Sadly netstat doesn't show which process is using which socket, all it tells you is how many sockets are in use. To find out which socket is being used by which process (and so which process could be having issues) you can use the Sysinternals] tool TCPView. This is a graphical tool that will show real-time information about sockets and their owning process.
The above screenshot shows an example TCPView session (PL183 is the local host name). It has examples of dbserver.exe listening on port 5481 and 8080, an outgoing client advise connection to port 5500 and an incoming client connection from port 4971.
The above screenshot also shows the example dbserver-driver connection, for example between dbserver and DriverModbusSlave on ports 4979 and 4974 respectively.
TCPView also comes with tcpvcon.exe, a command line based version which can be used in place of netstat in automated batch files.
tcpvcon -anc
The following items list possible causes as to why you are using more sockets than "normal"
The default range of 1024-5000 is fine for normal usage however with ClearSCADA it sometimes isn't enough. There are two options, both of which can be implemented as deemed necessary.
You can increase the maximum port value from the default 5000. This is configured in
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort (REG_DWORD)
Setting this value to be higher and rebooting increases the port range. A suggested change is to 15,000 (0x3A98), maximum is 65,534 (0xFFFE)
See http://support.microsoft.com/kb/196271 for more information from Microsoft.
When a socket is closed it hangs around in memory in case the process wants to use it again (see TIMED_WAIT in above screenshot). This is for efficiency reasons but can mean more sockets are out of selection if a lot of sockets close and open regularly. The timeout it waits can be dropped from the default of 240 to something less as required.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay (REG_DWORD)
Valid range is 30-300 (0x1E-0x12C). A suggested value to try is 60 or 90. Again a reboot is required for the changes to take effect.
See http://support.microsoft.com/kb/149532 for more information from Microsoft.
See http://www.samag.com/documents/s=1176/sam9907d/9907d.htm for some useful information on TCP connection states and problems.
Go: Home Back
Link copied. Please paste this link to share this article on your social media post.
Create your free account or log in to subscribe to the board - and gain access to more than 10,000+ support articles along with insights from experts and peers.