TN 7773: Managing Bentley SELECT Licensing

Details of the Bentley SELECT license and billing policy are described, and a K2 Policy configuration is suggested for reducing the risk of quarterly overage charges.

Managing Bentley SELECT license to limit excess license consumption

The configuration advice below assumes:

Several Bentley programs (e.g. MicroStation, AecoSim Building Designer, Staad Pro, etc.) are special cased so the usual query to KeyServer that checks if a launch should proceed is promoted to the very first stages of a launch. A launch attempt that is denied by a KeyServer Policy will be terminated before any logging by Bentley can be initiated. At the expense of adding about three seconds to Bentley launch times, blocked launches will not be seen in the Bentley usage reports at all. For reference, consult TN 7773.1 for a current list of Bentley executable files that are special cased in the KeyServer client component or higher.

A sample configuration is illustrated below. From KeyConfigure's Task menu, the New Policy wizard lets you search and select the Product to manage and set up the most basic Policy parameters — the Bentley Microstation Product in this example is managed with a Manage Policy using the Lease Metric with a License Limit of 12. But then additional options must be set up carefully in order to protect against overage charges:

The Bentley SELECT Open Access licensing metric – license consumption in one hour "buckets"

Unlike a concurrent use license which is allocated at launch and retrieved at quit, a Bentley SELECT Open Access license is allocated to a computer throughout every clock hour of the day in which the program is running.


  computer A  9:00 ->  9:30 [usage during the 9 o’clock hour]
  computer B  9:55 ->  9:56   [usage during the 9 o’clock hour]


The maximum of "hourly usage" is 2. Even though not used concurrently, the program was used on both computer A and B during the 9 o’clock hour.

Although Bentley’s online documentation and blog posts don’t give much more detail beyond describing how usage is collected into hourly "buckets", our analysis of Bentley usage reports has shown that “usage” times are padded beyond the actual program quit times in ways that can significantly effect the bottom line. Bentley reports never show a usage time of less than 10 minutes (see updated info below*). Computer B in the example above is actually running the program for only one minute until 9:56, but Bentley reports the quit as 10:05 (ten minutes after the launch).

Example revised:

  computer A  9:00 ->  9:30 [usage during the 9 o’clock hour]
  computer B  9:55 ->  9:56  ( 10:05) [usage during the 9 o’clock hour AND “usage” during the 10 o’clock hour]


Since the “usage" on computer B is recorded by Bentley as 9:55 to 10:05, computer B consumes “hourly usage" in both the 9 o’clock and 10 o’clock hours.

The padding added to longer usage intervals is more subtle. On a single computer, there are often several Bentley executable processes running simultaneously – some launched by the user at a known time, others sub-launched from within another process. Each of these will claim 10 minutes of future time when launched and then claim extensions of 10 minutes as long as it is still running. The actual quit time of the various process is therefore padded anywhere from 0 to 10 minutes (depending on how the quit aligns with the most recent 10 minute extension). As in the previous example, whenever a padded quit time crosses an hourly boundary it will also be counted as “hourly usage” in that next hour - perhaps with surprising or costly consequences.

Continuing our example from above, suppose there are other computers using the Bentley product in the 10 o’clock hour:

Example augmented:

  computer A  9:00 ->  9:30 [usage during the 9 o’clock hour]
  computer B  9:55 ->  9:56  ( 10:05) [usage during the 9 o’clock hour AND “usage” during the 10 o’clock hour]
  computer C 10:30 -> 10:31 [usage during the 10 o’clock hour]
  computer D 10:45 ->  2:54  (  ?   ) [usage during the 10, 11, 12, 1, 2 o’clock hours AND possibly the 3 o’clock hour]

The maximum of “combined hourly usage" is 3 (occurring in the 10 o’clock hour for computers B, C, and D) - even though never more than one computer was actually running the program at the same time, and never more than two computers were actually running the program within any hour. Note: we can’t tell whether the “usage” for computer D will be padded into to the 3 o’clock hour or not - it depends on whether a 10 minute claim was made by any sub-process during the last 4 minutes that the program was actually running.

Quarterly Summary and billing for excess usage

For each hour of a calendar quarter, Bentley examines the "hourly usage” reports. The hour with the maximum “combined hourly usage” is compared against your purchased entitlement. You are then billed for additional entitlements to cover excess usage on that maximal hour. Actually, we have heard that the calculation of “excess” is somewhat forgiving (or even negotiable?) – excess usage on 3 or fewer calendar days during the quarter may be ignored. But if there was excess usage on 4 or more days, you may be charged for the excess as computed from that maximal hour.

Comparison: K2 Policy enforcement versus Bentley usage reporting

K2’s implementation of a Lease Policy is based on program quit times while Bentley usage reports are based on process launch times with 10 minute renewals, so even with perfectly synchronized clocks, the recorded quit times will never align perfectly. A 70 minute Renewal Period specified for the Policy lease time takes care of both the hourly bucket plus 10 minute renewal metric. By actually configuring the Renewal Period as 71 minutes, small clock discrepancies are tolerated. The On Hour check box aligns the K2 lease Policy with the "top of the hour" concept described in Bentley documents.

The recommended Lease Policy settings illustrated above are conservative in the sense that K2 might unnecessarily block a few minutes of use beyond the padded quit time appearing in Bentley reports. But when even a few seconds of actual usage can potentially result in significant overage charges, the occasional loss of a few minutes to prevent over filling Bentley’s “hour buckets” can be well worth it.

Variations on the theme

The details of Bentley's standard licensing and billing terms can of course change at any time, not to mention the possibilities of custom or negotiated terms and specialized product bundles. While the example above serves today as a standard model for limiting the risk of overage charges for many Bentley products (purchased under the SELECT licensing option), it should be clear that K2 provides a very general and configurable means of management and usage reporting for various products and license metrics.

* In fact, as of September 2015, Bentley's latest CONNECT edition product releases include a new licensetool.exe component that changes the padding on license return times from 10 minutes to 1 minute. If you are managing one of these new product versions you can use a Policy "renewal period" of 62 minutes instead of the 71 minutes recommended above (for the older versions). Prior to September, a few Bentley products had already adopted this new metric so in such cases, the shorter lease time setting can be used to limit usage more efficiently while still preventing overages.

In summary, as with any software company, we expect Bentley's billing and licensing practices to continue to evolve. Please call Sassafras to discuss various configuration options – and to offer insights or corrections for improving this technote.