MATLAB: Do redundant servers fail to run properly if the primary server is killed

MATLAB

All three redundant server can be started and a client can checkout MATLAB without any problems but when the primary server is killed no clients can checkout a MATLAB license. When the primary server is killed, the license server status indicates that the other two servers are both not running.
-----------------
Server Status
-----------------
Flexible License Manager status on Mon 9/13/2004 15:25
[Detecting lmgrd processes...]
License server status: 27000@hsiaow,27000@namj,27000@carvalhom
License file(s) on hsiaow: D:\MATLAB7\flexlm\license.dat:
lmgrd is not running: Cannot connect to license server
The server (lmgrd) has not been started yet, or
the wrong port@host or license file is being used, or the
port or hostname in the license file has been changed.
Server name: hsiaow
License path: 27000@hsiaow,27000@namj,27000@carvalhom
FLEXlm error: -15,570. System Error: 10035 "WinSock: Operation would block"
For further information, refer to the FLEXlm End User Manual,
available at "www.macrovision.com".

Best Answer

This issue can occur if the MATLAB client points to the license servers via a license file instead of using the MLM_LICENSE_FILE variable. After the installation is complete the client license file should be removed and an environment variable used in its place. The client license file for MATLAB will be one or more of the following:
For R2008a and higher:
$MATLAB\licenses\network.lic
For pre-R2008a:
On Windows the client license.dat file is located in $MATLAB/bin/win32.
On UNIX/Linux/Mac this license.dat file is placed in $MATLAB/etc.
(where $MATLAB is the installation folder for MATLAB)
The environment variable that should be added is as follows:
MLM_LICENSE_FILE=port@server1,port@server2,port@server3
-port refers to the number at the end of the SERVER line in the license file. By default this is 27000.
-server refers to the hostname of your server as defined in the SERVER line of the license file.
NOTE: The entries in the environment variable must be separated by commas (","), not semicolons (";") or colons (":").
This step allows client redundancy so that if a server fails while a client license is checked out the client will search to the next server instead of posting an error. This also will remove the need to update the client license files if the server license files are changed.