Note: This article originally appeared May 10, 2017 on the IndySoft Corporation Blog


With the release of 9.2, IndySoft introduced license pooling scenarios. Our long-standing and popular concurrent licensing model per database is still in place, this only extends the functionality slightly by allowing customers to enforce some rules on exactly how the licenses in a database environment are distributed within their organization.

Rewind: Concurrent Licensing Explained

Let’s take a step back and review the existing license structure and how it works. Concurrent licensing is based on the idea that there is a peak number of simultaneous users your system will likely support at any given point in time during the business day. With concurrent licensing, you can install your software on as many networked computers pointing to your licensed database as you desire. You can also add as many users as you want. Users come and go throughout the day but once all allocated licenses are in use, additional users attempting to access the system are told to try again later after licenses are freed up in the system.

Timezones, Management, and Divisions

One of the largest benefits to concurrent licensing is that in multi-shift, multi-timezone, or multi-country operations, you experience a great deal of license re-use. If your operations are not 24/7 and are national/international, licenses are freed up as countries, shifts, etc change, and get repurposed by those coming on-shift.

On the other side of concurrent licensing, three common side effects of concurrent licensing exist. They are license-squatting, divisional quantity needs, and emergent issue access.

License Squatters

IndySoft combats license-squatting by incorporating session timeout controls as part of the deployment scheme. System administrators can set a maximum idle time for the system before the user is considered absent, and they will be logged out of the software, freeing their license for use by others.

The Need to Own Fixed Licenses

In some rollouts there is simply no way to calculate or plan for your maximum license usage. Imagine a rollout where you have 25 licenses and expect no more than 20 operators on a manufacturing floor and 5 users in the lab using the system at the same time. If more than 20 operators happen to access the system at once, those additional users will consume any unused licenses in your pool of 25 licenses. So if there is a boost in usage, some of those 5 lab users may find themselves without access to the system. If you consider your 5 lab users as more crucial than your 20 shop floor operators, this causes problems.

The other issue in divisional quantity needs comes in with multi-facility rollouts. If you expect 5 max users at Facility A and 5 at Facility B, you purchase 10 concurrent licenses. Facility A starts to discover more features in the software and usage/access rises. Now Facility A is robbing Facility B of licensing and Facility B productivity is affected because staff are not able to log in and work.

Emergent Issue Access

The final potential problem with concurrent usage licensing deals with critical needs. If all of your 10 concurrent licenses are in use and a manager, or system admin, needs access to address a dire need you can only boot someone through a system-level utility, or search out users independently and ask them to log out while you gain access to use the system. In either case, you are affecting productivity in one way or another.

License Pooling

The answer to all of these scenarios comes with the 9.2 License Pooling features and it addresses all of the previously mentioned scenarios. With pooling you can:

  • Setup exclusive access for licenses
  • Assign rights for users to one or more pool groups
  • Leave spare licenses in a global pool for others not in the pool

Let’s walk through the new features for an overview on the functionality.

Adding License Pools

License pool allocation begins within the IndySoft Registration Utility, the same application used for adding your licensed products. Open IndySoftReg.exe and you will find an interface similar to the one below.

Clicking the plus icon next to IndySoft Calibration Management, for which we have 8 concurrent licenses, we can see that we currently have no license pools created for the product. This means that up to 8 of our total users have access to the system with no pool restrictions whatsoever.

The registration utility with no license pools created


Clicking the Edit Pool Details button will launch the following dialog.


The license pool window with no allocated pools

From this screen we can begin to setup the pools for users. In the top right corner you will see your Total License count and as pools are constructed, the total number of licenses allocated to pools.

Clicking new allows us to create a pool. Let’s call this pool ADMIN, set the allocated licenses to 1, set Exclusive to checked, and then click OK. This pool will allow us to setup a dedicated ADMIN level account which keeps system owners from being locked out of the system due to max concurrent usage limits.

Creating the ADMIN license pool


We now create a set of alternate pools based on our requirements. In this example we are effectively locking down two licenses for exclusive access to department 123 then creating a non-exclusive pools for our Cal and Maintenance Techs, leaving 1 license with no assignment to any pool. We leave one license “free” which simply allows any user not in a pool to gain access to a license.

Our final list of license pools


After completing the pool allocation we click ok and our licensing pools are shown with the associated product.

Registered licenses with license pooling in place

Now we exit the registration utility.

Assigning Users to Pools

Now we launch into IndySoft and click the link to enter Profile Manager so we can assign our users to our pools. Our first pool was called ADMIN and was set for exclusive access. Double clicking one of our System Admins from the users list will load the edit user interface.

A user with no licensing pools assigned

In the lower portion of the screen we find the Registration Pools tab. Clicking the New icon will prompt us to associate this user with a license pool. For now we’ll select ADMIN, click OK, and return to the Registration Pools tab.

Adding the user to the admin pool


Now at this point we have set one system admin to be able to have a license gaining him access at any time. If we add a second user to that pool using their user Registration Pools screen what we have essentially done is created a concurrent ADMIN licensing pool of 2 users. If we want exclusive access to the pool, we should only add the one user and select the “Only Allow Login Using the Pool(s) Below” option.

Using the same method we can now select other users from Profile Manager and add them to one or more license pools. Adding a user to more than one pool, then setting the pool priority is essentially creating a cascading approach to pool assignment. For instance as a user logs in if his 1st priority pool is in the Cal Tech group but those are all in use and he also has 2nd priority access to the Maintenance group, his license will be pulled from the maintenance pool.

Adding a user to more than one pool with priorities


We continue this process, adding users to pools as required based on our needs. Based on our pool example after additionally configuring some users, the following best explains the pool operations.


License Pool Usage Example


As you can see, License pooling provides an extremely flexible way to still gain all the benefits of concurrent licensing while still offering a practical approach to locking licenses for specific business needs. Please feel free to explore this new feature and contact your sales representative if you would like additional information on IndySoft’s training programs or consultation/services related to making the most out of your IndySoft system.