Why can’t I build in PRO Mode of the MPLAB® XC compiler, even though the client machine is configured to use the Network Server license?
Here are some of the reasons why you may not be able to build in PRO Mode, even though the client machine is configured to use the Network Server license:
1 The Operating Mode/Optimization Level is not set
1.1) MPLAB® XC8
The operating mode is not set to PRO under the build options.
To set the optimization option to PRO, under MPLAB X IDE go to:
File>Project Properties>XC8 Compiler>Option>Optimizations then set 'Operation Mode' to 'PRO'.
1.2) MPLAB XC16 /XC32
Optimization options, -O2, -O3 or -Os, are not set under the build options.
To set the optimization option to PRO (optimization options -O2, -O3, -Os), under MPLAB X IDE go to:
File>Project Properties>XC16 compiler / XC32 compiler>Option>Optimization>Optimization level, and select either 'Os / O3 / O2'.
2 HPA (High Priority Access) for your Network Server license has ended
An ended HPA means that the license doesn’t support the compiler version being used for the build.
HPA is valid for one year from the date of its first activation. Compilers released during this one-year duration can be used in PRO mode.
Newer compiler versions released after the one-year duration will only build in FREE mode. If the client system uses a compiler version released after the HPA end date, the compiler will build in FREE mode.
To use a version of the compiler that is outside of the HPA purchase date, you need to renew the compiler’s HPA. Go here for the HPA renewal instruction.
3 There is no license file under the license directory on the Network Server machine
If there is no license file under the license directory, the compiler will build in FREE mode.
Check if a license file for your compiler exists under the license directory.
Path of license directory on different OS’s:
Windows® 10/8/7: %SystemDrive%\ProgramData\Microchip\xclm\license
Mac®: /Library/Application\ Support/microchip/xclm/license
Linux®: /opt/microchip/xclm/license
- If the license files are not under the license directory, and you have not registered your compiler, you can activate and download the license files from the following link: http://www.microchip.com/rlmmigrationtool/GetXCLicense.aspx. Instructions to activate the license are on the same page.
- If you have registered your compiler or purchased the compiler via microchipDirect, you can log in to http://www.microchip.com\MySoftware and download the license file for your Network Server machine.
4 Make sure that the license directory in the Network Server contains the latest license files
Older license files in the Network Server machine’s license directory may cause issues with the PRO mode builds.
Maintain only the latest Network Server license files (with a valid HPA), under the license directory. Remove older license files from the license directory.
5 Network Server license is not configured correctly on the server/client or both
- The xclm.conf in the Network Server machine doesn’t contain the correct path of the license directory.
Make sure that the xclm.conf on the Network Server machine and the client machine contains the correct path of the license directory.
E.g., <xclm:LicenseDirectory xclm:path="C:\ProgramData\Microchip\xclm/license/" />
Path of license directory on different OS’s:
Windows® 10/8/7: %SystemDrive%\ProgramData\Microchip\xclm\license
MacOS®: /Library/Application\ Support/microchip/xclm/license
Linux®: /opt/microchip/xclm/license
- The xclm.conf in the client machine doesn’t contain the correct server name or port number.
The server name and the port number are used by the client machine to connect to the Network Server machine. These are mentioned in the xclm.conf as follows: <xclm:Network xclm:port="5053" xclm:host="network_server" /> where 5053 is port number and network_server is the server name where the license key is hosted.
Make sure that the server name and port number in the xclm.conf file are correct. If these parameters are not configured correctly, run the following command on the client machine’s command prompt to correct these parameters: xclm -netfile <port> <host> where <port> is the port number on the client that will be used for connection to the Network Server and <host> is the name of the Network Server or its IP address.
- RLM service is not running on the Network Server machine.
RLM service should be running on the Network Server to host the license.
You can start the Network license server by running the following command: rlm -c <license path> where <license path> is the path of the Network Server’s license directory.
License directory path can be found by running this command on your Network Server machine’s command prompt: xclm -licensepath.
If you encounter the error "xclm is not recognized as a command" while executing these command on the command prompt, redirect to the bin folder of the compiler installation directory on the command prompt and then re-run the command.
6 Restricted access to the license directory/license files or xclm.conf in both server and client
Make sure that you have read/write permissions to access the license folder/files and xclm.conf file. If this is not the case, contact your system administrator to grant you full access to the Network Server machine and the client machine.
7 Firewall/antivirus is blocking the connection
Make sure that the firewall or the antivirus running on the Network Server or the client does not block the RLM, XCLM or the port used for communication between the Network Server and the client. If the antivirus or the firewall is blocking these utilities, add an exception for these under the antivirus/firewall settings.
Contact your system administrator for more details on adding exceptions under antivirus/firewall.
8 The TCPIP port used by RLM is busy
By default, the client machine uses port 5053 to connect to the Network Server machine. But, if this port is busy or unavailable, you can change the port in the Network Server and the client machine.
To change the port on the Network Server, update the license file with the new port number.
E.g., HOST melody 80a22fae 2700 where 2700 is the new, free port.
On the client machine, the port can be changed by running the following command: xclm -netfile <port> <host> where <port> is the new port number and <host> is name of the Network Server machine or its IP address.
9 Using the Virtual machine
If you are using a Virtual machine to host the Network Server license, you will need to purchase the MPLAB XC compiler Virtual Machine License.
The MPLAB XC Virtual Machine License for Network Licenses is an add-on license for:
• MPLAB XC8, XC16 and XC32/XC32++ PRO and Standard Network Server licenses
• MPLAB XC8, XC16 and XC32/XC32++ PRO Site licenses
This add-on license allows network licenses to be compatible with a virtual machine. One license will be needed for each virtual machine network.
To install the virtual machine license, follow the instructions on this page: http://www.microchip.com/DevelopmentTools/ProductDetails.aspx?PartNO=SW006021-VM.
10 The license is checked out/roamed out by other clients
Compiler executions on the network license client will need to connect to the network license server to check out a license. This license will be available for immediate use. However, when the compiler is exited, there is will be a 60-minute delay before that network server license can be used by other clients.
The roaming feature allows a client to disconnect from the server and use the license in PRO mode for a certain duration. The license is automatically roamed in after the end of a specified time. The license can be ‘roamed out’ by a client disabling access to other clients. The license can be roamed in manually by the client that had roamed out the license.
The client that roamed out the license can roam it back in under MPLAB X IDE by going to: Tools>Licenses> Roam Network License then click on ‘Release’. This will roam in the license to the Network Server, and the license can then be used by other clients.
To know which client has checked out/roamed out the license, check the license manager web server. The web server is started automatically on port 5054 when the RLM is started. To use the web server, simply point your browser to http://ServerHostName:5054.