• June 27, 2022

Rocket UniData 8.1 gets more SaaS-y: account-based licensing

One of the cool new features released in Rocket UniData 8.1 is the ability to define virtual groups of accounts and allocate a maximum number of licenses that can used by that virtual group across one or more accounts.

Why Might You Care?

Go talk to your DevOps people who need to guarantee that they can always access their UniData solutions and tell them that they can now guarantee that by declaring one license for their own virtual use. Administrators who get called in the middle of night with ‘user limit reached’ can now ensure they can access and diagnose what went wrong. Previously they couldn’t connect to the system either (no more users bro!) so had to bounce the machine just to connect.

So who else might care? Ask the business people who want to create a SaaS offering to allow multiple customers to access their unique accounts on your solution platform and need to make sure customers don’t consume all the licenses accessing one account or want to determine charging based on a fixed number of users for each account. Voila!

UniData 8.1 is flexible enough for you to allocate just what you need to a single account, a pool for a number of accounts and, whatever is left, is used by a default group for all the other users if DevOps and administrators haven’t grabbed the rest for themselves.

How Does It Work?

So enough of the brave new world pitch; how does it actually work?

There’s a new file called acct_licn.def which is used to configure the option (/usr/ud81/include for Unix, $UDTHOME\include on windows)

It could look something like this:

Logical Account,Licence Seats,Connection Pool Seats,Description
dev-acct        5       5       Dev CORP
rep-acct        5       5       RPT Corp

So in this configuration we have two virtual groups of accounts (DEV1 and DEV2 in dev-acct and RPT1 and RPT2 in rep-acct).

Each of these has five License seats and 5 Connection Pool seats.

Check Yourself Before You Wreck Yourself

You can’t configure more seats than are available for the full system, so there’s a command to check that the configuration is good and when all is good can be loaded into the environment:

listuser –a check (to check)
listuser –a reload (to load the account based definition)

In my example below I have 32 seats and 12 connection pools in total and you can see 22 seats and 2 connection pools are left in default after the others are dedicated to the virtual groups:

listuser -a list
Logical Account Name            DB Seats/Used   CONNPL Seats/Used
default                         22/0            2/0

dev-acct                        5/0             5/0

rep-acct                        5/0             5/0

NOTE: ‘default’ is the name of the virtual group that unallocated licenses get assigned to for generic consumption across other accounts.

If you exhaust the number of seats in a virtual account group you will get an error from udt which says “License limit reached for logical account:rep-acct” followed by the normal “UniData user limit has been reached, and license cleanup failed.”

UniData will manage your licenses correctly even when logging between unassociated accounts in different pools. It doesn’t support device licensing across these pools so that should not be used in conjunction with account based licensing.

I hope you get to try this out in UniData 8.1 and start thinking of new business models you could generate using this functionality.

For detailed information review the technical webinar on UniData 8.1 features.


Vinnie Smith 0 Posts

Managing Director of the MultiValue Development Labs at Rocket Software, brings over 30 years of MultiValue experience to the role. Vinnie started his career at SystemBuilder in the mid-1980s. Originally from the UK, Vinnie is a proud scouser (from Liverpool) with the accent to prove it. Vinnie now resides in Colorado with his wife, where he enjoys being the father of four and playing golf in the beautiful Rocky Mountains.


Leave a Comment

Your email address will not be published.