Index:
- Reasons to Use License Pooling
- Requirements
- Poolable Products
- License Pool File
- License Pool Variables
- Miscellaneous Variables
- License Logging
- How it Works
- Troubleshooting
- Product Variables
Reasons to Use MicroStation license pooling
- Network install of MicroStation
- Centralize all licenses
- License management
Note: MicroStation does not need to be installed on a network to be license pooled. You can install MicroStation completely locally, then enable the license pooling variables discussed below to point at the server where the licenses are located.
Requirements
- Poolable Application - see list of the Bentley SELECT poolable products.
- Poolable license numbers - MicroStation requires special numbers for license pooling. The nodelocked (local) license will not work if added to the license pool file. When registering MicroStation be sure to specify you want poolable license numbers.
- License pool file <filename.lic>, located on server.
- Set 2 configuration variables.
- The directory on the server where the license pool file is stored must have full rights enabled.
Bentley SELECT Poolable Products
- MicroStation SE
- MicroStation 95
- MicroStation V5
- MicroStation Descartes - minimum v06.00.00
- MicroStation GeoCoordinator - minimum v05.05.01.37
- MicroStation GeoGraphics - minimum v05.05.01.02
- MicroStation Modeler - minimum v05.05.00.11
- MicroStation ReproGraphics - minimum v06.00.00
- MicroStation TriForma - minimum v05.05.01.12
- MicroStation TriForma for Landscape Architecture - minimum v05.05.02.14
Note: All products need a poolable license number.
Enabling License Pooling (License Pool File)
Before starting license pooling, the license pool file must be created and uploaded to your file server. The license pool file is simply a text file that lists the registration information for each license on a separate line. Each license/line in the pool file must follow a specific format, with exact punctuation (see the example below). After entering all poolable licenses, save the file with a .lic extension (for example, <filename.lic>) and move it to your server.
Format:
Serial Number,License Number,"Registration Name","Registration Company"; Product Description
Example:
##############,########,"Bentley Support","Bentley Systems"; Bentley Select Product
The semicolon is a comment delimiter. All text after the semicolon is ignored.
Enabling License Pooling (Setting License Pooling Variables)
There are several variables which can be used when license pooling. Only 2 variables are necessary, though, those variables that specify where the license pool file is located and where license logging is to be recorded. Each Bentley SELECT product has its own variables. The end of this TechNote contains a list of each product's variables. The variables used in this description are for MicroStation 95 and MicroStation SE.
Variables which must be defined
- MS_LICENSEPOOL = (Location of the license pool file)
- MS_LICENSELOG = (Location of the license log file)
Examples:
Intel Specification:
MS_LICENSEPOOL = H:/License Path/Pool.lic
MS_LICENSELOG = H:/License path/Pool.log
example using UNC = //Netmount/License Path/Pool.lic
UNIX Specification:
MS_LICENSEPOOL = /Netmount/License Path/Pool.lic
MS_LICENSELOG = /Netmount/License path/Pool.log
Macintosh Specification:
MS_LICENSEPOOL = Netmount:License Path:Pool.lic
MS_LICENSELOG = Netmount:License path:Pool.log
The license pooling variables can be set in various locations:
- MicroStation Config Files (Preferred - Site Level Configuration)
- Network Logon Scripts
- System Files
- System Environment
MicroStation delivers a site level configuration file which can be edited to enable license pooling. The config file is site.txt, and is located in the ../%ustation%/config/site/ directory. Simply rename this file to site.cfg, uncomment the two required variables, and set the variables to point to the location for the license pool file and license log file. The site.txt file contains descriptions and examples of each license pooling variable.
Miscellaneous License Pooling Variables
- MS_MULTIPLESESSIONREUSELICENSE = 1
- This variable allows one user to start multiple sessions of MicroStation on the same machine while sharing the same pooled license. This variable is enabled by default. With this variable disabled MicroStation will lock an additional license for each MicroStation session started.
- MS_NOLICENSEGRACE = 1
- This variable disallows the use of MicroStation if no licenses are available. By default, if all licenses in the pool file are in use MicroStation will display an alert box with the following message, "Unable to find an available license in license pool file". Upon selecting the OK button another dialog box will appear with an OK and Cancel Button. After 30 seconds the OK button will highlight and allow the user to enter MicroStation without a license. With this variable enabled the second dialog box will not appear. MicroStation will exit when the OK button is depressed.
- _USTN_MACHINEID = $(Any Common Variable)
- The _USTN_MACHINEID can be used to write any company standard variable to the license log file. The log file is a journal which keeps track of when a MicroStation session is started and ended. This variable adds an identification entry to each line added to the log file. The MACHINEID can help system administrators evaluate the log file.
Examples:
- _USTN_MACHINEID = $(USERNAME)
- In this example MicroStation will write the Windows NT® login username to the log file. This only works on NT, Windows® 95/98 does not export a username variable. On Windows 95/98 you would have to manually create the username variable at the OS or Network level.
- _USTN_MACHINEID = $(LOGNAME)
- This example will write the UNIX logname to the license log file.
License Logging (Log File)
MicroStation writes a line to a journal file for each MicroStation start, end, and denial. The log file is written one line per event in a comma and quotation mark delimited format (each item is comma-delimited, and text that includes spaces is enclosed in quotation marks). Below is a breakdown of example license log files.
# MicroStation Successful Entry:
1,"12/31/98 5:30:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0"
# MicroStation Exit:
2,"12/31/98 5:31:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0"
With the MULTIPLESESSIONREUSELICENSE variable set:
# MicroStation Successful Entry:
1,"12/31/98 5:32:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0", "PCNAME"
# Second session of MicroStation started:
5,"12/31/98 5:33:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0", "PCNAME"
# Second session of MicroStation exited:
6,"12/31/98 5:34:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0", "PCNAME"
# First MicroStation session exited:
2,"12/31/98 5:35:30","_Ustn_MachineID",(Serial Number),"MicroStation Windows X86 V7.0", "PCNAME"
With no licenses available, user selects cancel:
# MicroStation Failure:
0,"12/31/98 5:36:30","_Ustn_MachineID",00000000000000,"MicroStation Windows X86 V7.0"
# MicroStation Failure, No Licenses Available, User selects OK after 30 seconds:
1,"12/31/98 5:37:30","_Ustn_MachineID",00000000000000,"MicroStation Windows X86 V7.0"
# MicroStation Failure Session exited:
2,"12/31/98 5:38:30","_Ustn_MachineID",00000000000000,"MicroStation Windows X86 V7.0"
# MicroStation Failure, No Licenses Available, No License Grace is set:
0,"12/31/98 5:39:30","_Ustn_MachineID",00000000000000,"MicroStation Windows X86 V7.0"
Note: Once the _USTN_MACHINEID variable is configured, the "_Ustn_machineID" will be replaced with the value of the variable.
TroubleShooting
| Common Problems |
Possible Solutions |
Enabled the variables for license pooling, but MicroStation keeps starting up with the license registration screen. |
- Check the extension on the configuration file. The extension should be (filename).cfg
- Make sure there is no .txt extension after the .cfg, for example, (filename).cfg.txt
- Make sure the variables do not have a comment (# or ;) in front of them
|
 |
- The license pool directory does not have full control
- The license pool file does not have full control
- The license file does not exist (Invalid path and/or invalid name)
|
 |
- Do not have poolable license numbers - contact Bentley Registration and request poolable license numbers
- Licenses are for the wrong version or product
|
 |
- No more licenses available in the pool file (normal message)
- The license pool directory does not have full control
|
How License Pooling Works
Note: The flow charts refer to a Semaphore file. A semaphore file is a 0 byte file MicroStation creates in the same directory as the license pool file. One semaphore file will be created for each line in the pool file as the licenses are being used. If your pool file has 30 licenses, the most semaphore files that will ever be created is 30. If the MS_MULTIPLESESSIONREUSELICENSE variable is set MicroStation will write the Computer Name in the semaphore file. Once the files are created they will always be there. MicroStation simply locks and unlocks the semaphore files as licenses are being used. For routine maintenance the semaphore files can be deleted.
Standard License Pooling Flow Chart
License Pooling Flow Chart with Multiple Sessions Enabled

Bentley SELECT Products - License Pooling Variables
MicroStation SE, MicroStation 95, and MicroStation V5
- MS_LICENSEPOOL =
- MS_LICENSELOG =
MicroStation Descartes (minimum v06.00.00)
- MS_DCLICENSEPOOL =
- MS_DCLICENSELOG =
MicroStation GeoCoordinator (minimum v05.05.01.37)
- GCOORD_LICENSEPOOLFILE =
- GCOORD_LICENSELOGFILE =
MicroStation GeoGraphics (minimum v05.05.01.02)
- MS_GEOLICPOOLFILE =
- MS_GEOLICLOGFILE =
MicroStation Modeler (minimum v05.05.00.11)
- MODELER_LICENSEPOOLFILE =
- MODELER_LICENSELOGFILE =
MicroStation ReproGraphics (minimum v06.00.00)
- MS_REPROLICENSEPOOL =
- MS_REPROLICENSELOG =
MicroStation TriForma (minimum v05.05.01.12)
- TF_LICENSEPOOL =
- TF_LICENSELOG =
MicroStation TriForma for Landscape Architecture (minimum v05.05.02.14)
- TLA_LICENSEPOOL =
- TLA_LICENSELOG =
8102