Client Diagnostics
When troubleshooting you can generate an RLM client diagnostic report. Generating this report requires setting the “RLM_DIAGNOSTICS” environment variable. You can read more about setting environment variables here. When the RLM Client library is run (developers: specifically the rlm_init() API call), RLM will generate the diagnostic report to the file location specified in the environment variable.
The diagnostic report will be broken into 5 sections:
- A Header with system information
- Environment – The RLM related environment variables when the diagnostic report was generated
- License files – The license files on the local computer that RLM was able to identify
- rlm_init() parameters – Helpful to developers
- Licenses which can be checked out
1. Header
The header will detail when the report was generated, as well as information about the system the report was created on.
Here is an example section:
RLM Diagnostics at 09/02/2024 07:00 RLM version: 16.0BL1 RLM platform: x64_w4 OS version: 6.2 ISV name: [ISV name] Hostname: [Computer name] User: [Username] Working directory: C:\Example-Directory
2. Environment
The Environment section will list out off of the RLM specific environment variables, and list their value. Note that these values will be collected when the diagnostic report is run, and that some applications may change environment variable values afterwards.
The Environment section will also list all of the hostids that are present on the client system.
Here is an example section:
Environment: RLM_CONNECT_TIMEOUT=<not set> RLM_EXTENDED_ERROR_MESSAGES=<not set> RLM_LICENSE=<not set> RLM_NO_UNLIMIT=<not set> RLM_PATH_RANDOMIZE=<not set> RLM_PROJECT=<not set> RLM_QUEUE=<not set> RLM_ROAM=<not set> RLMSTAT=<not set> HTTP_PROXY=<not set> HTTP_PROXY_CREDENTIALS=<not set> DEMO_LICENSE=<not set> demo_LICENSE=<not set> RLM hostid list: 10ac0307 uuid=699A4D56-58BF-1C83-D63C-27A8BEB8011A disksn=WDWX60AC946860 ip=192.168.0.2
3. License Files
The License Files section will list the license files, on the local system, the RLM client library was able to locate. When troubleshooting it can be helpful to make sure RLM is able to read the license file on the file system (ex: permission issues).
Note: License files contain licenses, and licenses are what applications then perform checkouts on. So the license file is the “container”, and the license is the “object.”
Here is an example section:
License files: example.lic roam.lic token.lic
4. rlm_init() parameters
The rlm_init() parameters section is for software developers. It let’s them know what parameters were passed into the rlm_init() API call.
Here is an example section:
rlm_init() parameters: 1: . 2: rlmclient 3: <empty>
5. Licenses which can be checked out
This section will list the licenses that are available for the client device to checkout. Note that license files contain licenses, and licenses are what applications then perform checkouts on. So the license file is the “container”, and the license is the “object”. Licenses that can be checked out can either be in local license files, passed into rlm_init() directly, found on a local RLM license server, found on an RLM Cloud license server, or be a locally roamed/cached license.
Here is an example section:
Local licenses which can be checked out: Client Cached Licenses (only the highest version # shown): <none> In license file example.lic (no server) rlmclient v1.0 OK In license file roam.lic (no server) rlm_roam v1.0 OK In license file token.lic (no server) <none> Roaming Licenses: <none>
For more information on debugging a license, please see Debugging Licensing Problems in the Field in the RLM documentation.