|ARM Technical Support Knowledge Articles|
If you see this error part way through a parallel make (make -j) then this may be because the operating system has run out of dynamically allocated TCP ports.
FLEXlm licensing software uses typical client server protocols for each license checkout. The client application (for example the compiler) will query the operating system for a dynamically allocated port that is not already in use. Although these ports will be reclaimed by the OS after a period of time, a problem can occur if a large number of license checkouts are made in a short period, leading the OS to run out of free ports and a FLEXlm -15 error.
By default, Windows XP can dynamically allocate ports in the range 1025 to 5000, the DOS command: 'netstat -n' can be used to show if all these ports are in use.
This problem is only likely to be seen when performing parallel builds on fast (multi core) machines.
A solution may be to reduce the parallelism of the build. Alternatively, a registry change can be made to increase the number of ports that Windows will dynamically allocate as described below.
Save your current registry settings. Open the registry editor (Start->Run...regedit). Open this registry branch:
On the Edit menu, point to New, and then click DWORD Value.
Type MaxUserPort and then press ENTER.
Double-click the MaxUserPort value, and then type the maximum value in decimal or hexadecimal.
You must type a number in the range of 5000–65534 (decimal). Setting this parameter to a value outside of the valid range causes the nearest valid value to be used (5000 or 65534 ).
Click OK and quit registry editor
You must restart the computer for changes to the MaxUserPort registry setting to take effect.
This networking behaviour is described in more detail within in the Microsoft TechNet article: Windows TCP/IP Ephemeral, Reserved, and Blocked Port Behavior
Article last edited on: 2008-09-09 15:47:54
Did you find this article helpful? Yes No
How can we improve this article?