This Client Server article is republished in its entirety from 2004 for reference purposes.
By James White, Technical Support Analyst, Bentley Corporate Office 20 January 2004 Modified: 07 February 2005
SELECTserver License Manager is a server-based concurrent license utility used to share out licenses over a network and to monitor license usage. The licenses are distributed through an encrypted file and managed through a browser administrative interface. The usage information can be manipulated to view or chart various time spans to assist in planning and project management.
The Bentley SELECT agreement states that in order to use the concurrent licensing feature of SELECTserver, subscribers must maintain software usage logs for the duration of the contract. SELECT contracts are renewed annually, which can mean that subscribers are required to keep these files on their computers for up to a year. SELECTserver has a mechanism by which administrators can elect to periodically and automatically transmit relevant information from the log file directly to Bentley, and thereby automatically satisfy their obligation under the SELECT contract.
This transmission of log file information to Bentley is entirely optional on your part. If you elect not to transmit your log files to Bentley, you must maintain them yourself. You must then provide the files or provide access to them to Bentley when and if asked-generally at contract renewal.
Periodic transmission of log file information can be scheduled to occur automatically or by manual initiation by the site administrator. The transmissions themselves are encrypted and secure between your server and Bentley's. The entire content of the transmission is visible to you through the License Manager Administrative Interface. Under the History Reports section you can use the Usage Analysis hyperlink to view the contents.
Located in the x:\Program Files\SELECTserver\ directory is the lmserver.inf file. It controls multiple actions of the SELECTserver utility, but this article will focus on the delivery of the usage files.
There are three options for the delivery of usage logs to the Bentley server: Manual, Scheduled, and Manage Locally.
The following information is at the end of the lmserver.inf file:
# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=USAGE-UPLOAD-INTERNET-SCHEDULED UPLOAD=USAGE MONTH=* DAY=Random(1-28) HOUR=Random(0-23) MINUTE=*HOST=http://registration.bentley.com/selectserv/reqhost.cfm"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=REG-UPLOAD-INTERNET-SCHEDULED UPLOAD=REGISTRATION MONTH=* DAY=Random(1-28) HOUR=Random(0-23) MINUTE=*HOST=http://registration.bentley.com/selectserv/reqhost.cfm"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-INTERNET-MANUAL UPLOAD=ALL HOST=http://registration.bentley.com/selectserv/reqhost.cfm"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=USAGE-UPLOAD-INTERNET-MANUAL UPLOAD=USAGE HOST=http://registration.bentley.com/selectserv/reqhost.cfm"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=REG-UPLOAD-INTERNET-MANUAL UPLOAD=REGISTRATION HOST=http://registration.bentley.com/selectserv/reqhost.cfm"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-TO-FILE-MANUAL UPLOAD=ALL"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=USAGE-UPLOAD-TO-FILE-MANUAL UPLOAD=USAGE"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=REG-UPLOAD-TO-FILE-MANUAL UPLOAD=REGISTRATION"# SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-INTERNET-SCHEDULED UPLOAD=ALL MONTH=* DAY=Random(1-28) HOUR=Random(0-23) MINUTE=*HOST=http://registration.bentley.com/selectserv/reqhost.cfm"< /FONT>
There are nine options altogether, because there are two log files that can be sent either separately or together, and there are different options for delivering these files. Choose Options 1, 4, or 7 for handling the log files together. Choose your option by simply uncommenting it. Then save the file and restart the Bentley LMServer service.
The SELECTserver License Manager can be accessed on the server on which SELECTserver is installed by using Start Button > Programs > SELECTserver > Administrator Interface. Administrators may also access this page remotely. There are no limitations to SELECTserver manipulations from either location.
Please note that you can view multiple configuration files from the administrative interface but you must go to the file in the SELECTserver directory to actually edit the file. For the purpose of this article, we will work on the assumption that SELECTserver is installed, with the Bentley LMservice running and distributing licenses to client workstations.
Figure 3 Edit the lmserver.inf file. Selecting Schedule_Activity  and restarting the Bentley LMservice will configure SELECTserver for a manual Administrator Initiated usage log transfer. Use the Scheduled Activities "Activities Status" link to start the initiation process.
SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-INTERNET-MANUAL UPLOAD=ALL HOST=http://registration.bentley.com/selectserv/reqhost.cfm"
(Statement - 1)
Use the Scheduling Name link "All-UPLOAD-TO-INTERNET-MANUAL".
This shows you the Scheduled Activity Details page with another link that states "You may Manually Start the Activity". Using this link will change the state to a "RUNNING" status. Wait a few seconds to give the transfer a chance to complete, then refresh the screen. The state's status will return to the normal "IDLE" reading.
Edit the lmserver.inf file. Selecting Schedule_Activity  and restarting the Bentley LMservice will configure SELECTserver for a scheduled Internet file transfer.
SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-INTERNET-SCHEDULED UPLOAD=ALL MONTH=* DAY=Random(1-28) HOUR=Random(0-23) MINUTE=* HOST=http://registration.bentley.com/selectserv/reqhost.cfm"
(Statement - 2)
Select the "Activity Status" link (See Figure 1)
Figure 4 Now the Scheduled Activity Status page will display as pictured in Figure 4.
Notice that under Scheduling Information, the variables displayed are either "*" or "Random", meaning that the usage files can be transferred at SELECTserver's discretion.
These items are completely configurable through our familiar friend, the lmserver.inf file. Included in the lmserver.inf file is an explanation and an example of how to set up SELECTserver to deliver the usage files at a prescribed time. Editing the variables for the Month, Day, Hour, and Minute allows the administrator to know when the usage logs are transferred and makes it easier to monitor the results. The time variables breakdown as the following:
MONTH = (numerical representation of the month 1-12)
DAY = Random (1-28) (numerical representation of the day of the month 1-31)
HOUR = Random (0-23) (numerical representation hour 0-23)
MINUTE = (numerical representation minutes 0-59)
To configure SELECTserver to deliver the usage files the first day of the quarter at 1:00 a.m., edit the statement in the lmserver.inf file as follows.
SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-INTERNET-SCHEDULED UPLOAD=ALL MONTH=1,4,7,10 DAY=1 HOUR=1 MINUTE=0 HOST=http://registration.bentley.com/selectserv/reqhost.cfm"
Figure 5 After restarting the Bentley LMservice, the Scheduled Activity Details page will display as pictured in Figure 5, defining the time for usage logs delivery.
Now, at the appointed time SELECTserver will deliver the usage logs to the Bentley server.
Edit the lmserver.inf file. Selecting Schedule_Activity  and restarting the Bentley LMservice will configure SELECTserver to allow the administrator to maintain the usage files locally, create the .gz zip files and store them in the SELECTserver\Upload directory.
SCHEDULE_ACTIVITY = "LogFileUpload: NAME=ALL-UPLOAD-TO-FILE-MANUAL UPLOAD=ALL"
(Statement - 3)
Select the "Activity Status" link (See Figure -1)
Figure 7 Now the Scheduled Activity Status page will display as shown in Figure 6.
Activate the Scheduling Name link.
Now the Scheduled Activity Details page will display as pictured in Figure 7.
Using the Manually Start link will change the state to a RUNNING status. Wait a few seconds to give the transfer a chance to complete, then refresh the screen. The state's status will return to the normal IDLE reading. Activating the link creates the .gz zip files and places them in the x:\Program Files\SELECTserver\Upload directory. The administrator can then send the encrypted file(s), if requested, by E-mail (email@example.com) or mail (Bentley Systems, Inc., Dept: SELECTserver Log Files, 685 Stockton Drive, Exton, Pa. 19341).
Note that this will not remove the red-letter warning message (if visible) on the SELECTserver Administrative Interface. Please contact Bentley Technical Support for assistance in resetting your SELECTserver to update the .ser files for time tracking and file transfer monitoring. This task cannot be accomplished on your own.
When any uploads are completed either-manually or scheduled-you must check the lmdebug.log file in the SELECTserver directory to see the upload status. The log should have entries similar to this:
LM2620I Log File Upload activity has been started. [ActivityLogFileUpload::run(0)]LM1830I Attempting to send file 'upload\USAGE-license-Upload.gz'.LM1850I Sending file 'upload\USAGE-license-Upload.gz' has completed SUCCESSFULLY.
A failure of the upload will result in an "Unsuccessful" or "Unable to initiate a host session" statement listed in the lmdebug.log. One of the advantages of using the configured "Scheduled Internet File Transfer" is that you now have a known time reference to look for the results of your upload. Any status other than a "Completed Successfully" constitutes a problem that must be resolved.
After the recent rash of computer viruses, most companies have increased their security and firewall protection, and have uploaded the most current Microsoft updates. By default, the Bentley LMservice operates under a system account that, for security reasons, generally does not have permission to use a proxy server. This may result in a blockage of usage logs when attempting to complete the upload. If you notice any actions that generally seem out of the ordinary, please contact Bentley Technical Support for assistance.
The file transfer takes place over the common Internet Port 80. There are no special firewall or port requirements. With that said, Internet access is necessary to deliver the usage log files to the Bentley server. Sites without Internet access must use the manual E-mail or postal mail to deliver their usage logs.
The actual transmission is accomplished in small segments. If transmission is interrupted, SELECTserver will resume from where it left off until the transmission is complete. You can view the status of the transmission in the administration interface.
If the network utilizes a proxy server, the Bentley LMServer service will need to be changed from its default local system account to one that has proxy settings enabled. SELECTserver uses the Internet Explorer client settings ("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings") to find the requirements and locations of a proxy server. Make sure this user ID has its Internet Settings properly configured to use the correct proxy server. To do this, log in interactively as the user and use the Internet Explorer Tools > Internet Options > Connections > LAN Settings > Proxy server to manually set up the proxy server address and port.
Note that for ease of server maintenance, it may be desirable to use a user ID context for which the password never expires.
When the new account is properly configured, use Control Panel > Administrative Tools > Services > Bentley LMServer > Properties > Log On > This Account to configure the SELECTserver to run as a particular user ID:
From the Services window, double click on Bentley LMServer. In the Properties box, click on the Log On tab. Under Log On As:, change the setting from Local System Account to This Account. Enter the Log On ID and password of an account that has proxy settings enabled. Stop and restart the service.
Figure 9 File Contents
There has been some concern about the type of information being transmitted to Bentley. Bentley has no interest in receiving data that is considered a security risk. At file transmission, all user specific information is replaced with unique identifiers. Our interest is in usage information. The transmitted usage log files are comma delineated and pursue the following format:
Event Code, Date and Time, Computer Name of Client, Serial Number, Feature, Engineering Configuration, Feature Version, Platform, Username, Usage Identifier
The first field, Event Code, tracks all occurrences of actions taking place in SELECTserver. Under the License Manager Administrative Interface you will find a documentation section. The trouble-shooting hyperlink contains the entire list of Event Code definitions, the most basic being:
Event Code 1: MicroStation (or Bentley Product) successfully obtained license.
Event Code 2: MicroStation (or Bentley Product) successfully returned the license.
The following is an example log file entry with a breakdown of the field information:
1, "2003-01-13 08:43:20","C-1","20206283800010","MicroStation","","07.01","","U-1","1009",1042469000
Event Code: 1 Licensed obtained
Serial Number: 20206283800010
Engineering Conf: (Present only when Engineering Configurations are used)
Feature Version: 07.01
Platform: Not Used
Usage Identifier: Mapping identifiers related to license Checkin\Checkout tracking.
A return of the license would have a similar display:
1, "2003-01-13 09:15:00","C-1","20206283800010","MicroStation","","07.01","","U-1","1009",1042469000
Note that machine names have been replaced by C-1, C-2, etc., and the user names have been replaced by U-1, U-2, etc.
Client Server Archive
Licensing TechNotes and FAQs
Bentley's Technical Support Group requests that you please confine any comments you have on this Wiki entry to this "Comments or Corrections?" section. Thank you!