Licensing

Mobileum provides three licensing options for your dsTest software. dsTest licenses are issued for each major software release and you must obtain a license this is compatible with the version of the software that you choose to install - typically the latest version available. Your license will expire shortly after the next release and license become available. You can install the new license, however, without disrupting your test schedule as licenses are backward compatible, allowing you to upgrade your dsTest software when it is convenient for you to do so.

For information on the status of your current dsTest license and its resources, refer to this FAQ.

After reviewing the information below, click the applicable header to see the installation instructions for your license type.

How you install your license(s) depends upon the license type. Please verify the type of license you have before using the instructions below and use the correct set of instructions depending upon the type of license. If you have any question regarding license installation, please contact Support before proceeding.

The .tgz license file(s) received from Mobileum must be decompressed using the Linux tar command or installed using dsClient Desktop as specified by the instructions in this section. Decompressing these files in a Windows environment will corrupt your license.

Users of the devsol group have the permissions needed to install licenses. If you are receiving a "permission denied" error when trying to overwrite an existing license file it may be because the existing file was written by an account with root permissions. In that case delete the existing file as root, then exit root and install the current file. Installing a license with root permission will also prevent you from updating your license using dsClient Desktop.

Node-Locked License

The license is installed on the platform along with dsTest. A single instance of dsTest may be run and it may only be run on that platform. The license is tied to that platform and can only be transfered to a different platform when the license is renewed. With this type of license, dsTest must be installed in the native OS (i.e., dsTest cannot be installed in a virtual machine that runs on the licensed platform).

Floating License

The floating license option provides the greatest flexibility for enterprise use as multiple dsTest instances may be running concurrently - up to the licensed number of users - and dsTest can dynamically check out license resources as needed and then release those resources when they are no longer needed. In addition, all interface applications in your license are always available to all instances of dsTest.

This option requires a license server in your network with which your dsTest instances will communicate. In this case the floating license is tied to the license server platform and the license server must be installed in the native OS. dsTest, however, may be installed in a virtual machine or a native OS with this type of license. dsTest instances must always have connectivity with the license server but may reside in different network segments or facilities.

Resource Consumption

As stated above, interface applications are available to all instances of dsTest that are associated with the floating license. Three licensed resources are consumed by an instance of dsTest, leaving only the remaining resources available to other instances.

Users: each active instance of dsTest consumes one user resource. When all users have been consumed additional instances of dsTest cannot be launched.

Subscribers: as you load test configurations, dsTest will attempt to dynamically check out the number of subscribers defined in your subscriber database(s). The test will fail to load if the available subscribers in the license is insufficient.

Transactions-per-Second (TPS): TPS can be statically checked out when you launch dsTest or dynamically checked out when you load a test configuration. In order to dynamically check out TPS you must configure the expected TPS for each interface application in your configuration (see Estimating TPS for more information). Otherwise dsTest will attempt to check out 20K x (number of cores - 1) TPS. In either case dsTest will also check out a user resource if the requisite TPS is available and a user resource has not already been obtained. In the former case dsTest will fail to launch if either check out attempt fails. In the latter case the test will fail to load if either attempt fails.

Renewing and Releasing Resources

By default, resources are checked out for 10 minute intervals and dsTest will start attempting to renew its license several minutes before the license expires. If dsTest is unable to communicate with the license server before the license expires, dsTest will exit.

When you unload a test dsTest will release the subscribers that were dynamically checked out for that test. If you launched dsTest in standby mode (i.e., without checking out TPS) the TPS and user resources will also be released and dsTest will return to standby mode. Otherwise, the TPS and user resources will continue to be renewed until dsTest is terminated.

dsTest attempts to release all license resources whenever it recognizes that it is being shut down. Terminating dsTest with a kill -9 rather than issuing a terminate command will prevent that from happening. In that case resources will remain checked out until the license interval expires.

Hosted Floating License

Mobileum hosts the floating license on our license servers, which means instances of dsTest must have Internet access in order to communicate with a license server.

With this arrangement you also have the option to manually check out a license for a specified period of time, up to 30 days. This allows you to lock in the resources that you'll need for a demonstration at a customer site or a trade show without the need to communicate with our license server.

Installing a Node-Locked License

After you receive the license file that you requested when you installed dsTest it must be decompressed and placed in the proper location on the server. If you use dsClient Desktop you can install this type of license using the Status and Operations screen. Follow the instructions below to install the license manually.

First, transfer the file you received from Support to the server and decompress it:

> tar -xvzf <license file name>.tgz

The resulting file - license.dsl - is the dsTest license. Place this file in the /usr/local/devsol/config/ directory on the server.

Licenses are time-sensitive and dsTest requires that the date and time on the server platform be properly configured. A "system corrupt" error is generated when dsTest is started without a valid license or when there is a conflict between the license and the configured date and time on the server. We recommend synchronizing the server date and time with an NTP server. If you continue to receive "system corrupt" errors after installing your license and confirming that the server is properly configured, please contact Support.

Refer to Running dsTest as a Service as you may need to modify the contents of /usr/local/devsol/run/dsTest.conf to set DSTEST_ENABLE="No" if you do not want dsTest to automatically start upon server restarts. You may also need to modify the contents of /usr/local/devsol/run/licenseserver.conf to set LICENSE_SERVER_ENABLE="No".  Since this is a Node-Locked license, there is no license server to start, and this option should be disabled to avoid conflicts with restarting dsTest.

After your node-locked license is in place you are ready to launch dsTest.

Extending an installed Node-Locked license

If you have a long term test running and your dsTest license is set to expire before the end of the test run, you can extend your dsTest license without stopping dsTest. Additional resources, such as new applications or additional subscribers, may also be added to a license while dsTest is running.

 

This feature cannot be used to upgrade to a new version of dsTest or to replace an expired license. The extended license must be for the same version of dsTest that is currently licensed and dsTest must be running.

 

Contact Support and include the system's license information to obtain a new compressed license file. As with installing a new node-locked license, you can install a license extension using the Status and Operations screen in dsClient Desktop or you can manually install the extended license by following the steps below.

1.Transfer the compressed file to /home/devsol/ or to the directory from which you normally start dsTest and decompress it using the tar command.
          > tar -xvzf <license file name>.tgz

2.Start dsClient Terminal at the command line.
          > dsClient

3.Source the license.dsl file resulting from step 1 as you would source a test configuration. dsTest will install the extended license in /usr/local/devsol/config/ and will also update the memory-resident aspects of the license information without interrupting your test.
          dsTest> source license.dsl

4.Exit dsClient Terminal.
          dsTest> quit

5.Delete the tar file and the license file from the current directory.

Installing a Floating (non-hosted) License

As noted above, this licensing option requires a local license server to serve up licenses for your dsTest instances. This section covers installing, configuring, licensing, and operating the license server as well as licensing your dsTest installations.

For Floating (non-hosted) licenses, the License Server application must run on a native Linux OS environment. Virtual Machine (VM) environments are not supported for the license server. Instances of dsTest, however, can run on VMs that have connectivity to the license server.

Connectivity between the dsTest servers and the License Server must be maintained at all times. dsTest will periodically connect to the license server, and if the connection attempt fails dsTest will terminate. UDP port 10009 must be open for communications between the dsTest server and the license server. For a list of all ports that must be open for dsTest, refer to this FAQ.

The License Server application is installed with dsTest. If you haven't already done so install dsTest on the license server platform and then request your license. Follow the instructions below after you have received the compressed license file.

First, transfer the file you received from Support to the server and decompress it:

> tar -xvzf <license file name>.tgz

Two files will now be available: floating.lic (the floating license) and license.dsl (the license for a dsTest instance).

Place floating.lic in the /usr/local/devsol/config directory on the license server. If the license server is running you will need to restart the licenseServer service (see Operating a License Server below).

Place a copy of license.dsl in the /usr/local/devsol/config directory on all of your dsTest installations, including the license server if you wish to also run dsTest on that platform, and start or restart dsTest.

Licenses are time-sensitive. The license server application requires that the date and time on the license server and any dsTest platform that requests a license be within 5 seconds of each other. We recommend synchronizing all of your platforms with an NTP server. An error message is generated when dsTest is started without a valid license or when time synchronization is out of tolerance. 

A "WARNING: Client and Server Time of Day not synchronized" message is generated when you check the license status if the platforms are not synchronized.

If you continue to receive "system corrupt" errors after installing your license and confirming that all platforms are properly configured, please submit the problem to Support.

Operating a License Server

The License Server application should be configured to run as a service to ensure that it will automatically start when the server boots or when the software is upgraded. You must be logged in as root, or operating with root permissions, in order to execute these commands.

When you install either the dsTest or License Server package, the dsLicense service is added to the server as a systemd service. To enable or disable automatic startup of the license service, use the following commands:

 

systemctl enable dsLicense.service

systemctl disable dsLicense.service 

When upgrading existing floating license files, it is necessary to stop and restart the dsLicense service in order for the new license information to be activated. The commands listed below may be used for stopping and restarting the service.

systemctl start dsLicense.service

systemctl stop dsLicense.service

systemctl status dsLicense.service

 

lsClient Terminal

The lsClient Terminal is installed along with dsTest and it provides a command-line interface to control licenseServer client restrictions. With lsClient Terminal you can source XML client tps restrictions, display client tps restrictions and real-time reserved licenses, along with issuing additional supportive licenseServer commands.

Commands:

 

Version

The version command will display the current licenseServer application build version and date.

 

     licenseServer> version

     Application: licenseServer  Version: 6.3.20241003  Build: Thu Oct  3 23:03:10 2024

 

license

The license command displays the license name, serial number, version, and expiration date.

 

     licenseServer> license

     License Name: test28-lab  Serial Number: 5b92f5d5c30da

     Version: 6.3    Expires: Fri Jan 31 23:59:58 2025

 

who

The who command depicts ports being utilized by the licenseServer.

 

     licenseServer> who

     XML Control listening on 10.10.5.28:10009

     XML Monitor Listening on 10.10.5.28:10010

     REST API Listening on 10.10.5.28:10013

     Connection for devsol from 0:10.10.5.28:57217 unlocked

     Connected clients: 1

 

user

The user command shows the active user utilizing the lsClient.

 

     licenseServer> user

     devsol

 

date

The date commnad diaplays the current date and time.

 

     licenseServer> date

     Fri Oct  4 08:21:52 2024

 

allow

The allow command displays any configured client tps checkout restrictions. 

 

     licenseServer> allow

 

        allow

           dstest

              hostname contents:test29

              tps contents:500

 

The client checkout restrictions are applied by sourcing an xml file with the following structure:

 

     Ex.

     ~> cat allow_test29.xml

     <dst:licenseServer xmlns:dst="http://www.developingsolutions.com/schema/dsTest"

             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

             xsi:schemaLocation="http://www.developingsolutions.com/schema/dsTest dsTest.xsd">

             <config>

                     <allow>

                             <dstest>

                                     <hostname>test29</hostname>

                                     <tps>500</tps>

                             </dstest>

                     </allow>

             </config>

     </dst:licenseServer>

 

     ~> lsClient

     licenseServer> source allow_test29.xml

 

Note(s):

·          This file will not survive a licenseServer restart and must be manually applied again, post an upgrade or any other licenseServer software restart.

·Once client checkout restrictions are introduced via an allow XML file, ONLY clients identified in the XML will be permitted to checkout licenses.

 

The allow command introduces the following functionality.  If the configured client requests tps less than or equal to the checkout restriction, dsTest will be allowed to start.  If the tps request exceeds the checkout restriction, dsTest will no be allowed to start.  The user will observe a Failed to retrieve license error response.

 

     Ex.

     ~> /usr/local/devsol/bin/dsTest -i10.10.5.29&

     ~> Default Options: -l6 -L10 -t2000

     Failed to retrieve license

 

     Ex. Excerpt from ds_log

     t7abafa886940:l09:Fri Oct  4 09:15:22:396720:(nil):licenseRequest.cc:sendRequest:502:license rejected: 0 2

     t7abafa886940:l11:Fri Oct  4 09:15:22:396722:(nil):licenseRequest.cc:sendRequest:698:-1

     t7abafa886940:l11:Fri Oct  4 09:15:22:396733:(nil):licenseRequest.cc:generateRequest:286:-1

     t7abafa886940:l07:Fri Oct  4 09:15:22:396736:(nil):event.cc:SystemEvent:585:Event: 12:0:(nil):Failure: Failed to update floating license: License expires at: Wed Dec 31 18:00:00 1969

     t7abafa886940:l05:Fri Oct  4 09:15:22:396739:(nil):event.cc:systemEventLog:392:Licensing Error: Failure: Failed to update floating license: License expires at: Wed Dec 31 18:00:00 1969

     t7abafa886940:l11:Fri Oct  4 09:15:22:396740:(nil):license.cc:updateLicense:1319:0

     t7abafa886940:l04:Fri Oct  4 09:15:22:396741:(nil):license.cc:checkoutFeature:1884:Feature capacity exceeded: FEATURE_TRANS_PER_SEC  Capacity: 0  Used: 0

     t7abafa886940:l02:Fri Oct  4 09:15:22:396754:(nil):dsTest.cc:main:644:Failed to retrieve license

     t7abafa886940:l01:Fri Oct  4 09:15:22:396768:(nil):threadManager.cc:shutdown:1181:Signal context: 0x366ac6c 0x7b2d61 0x7abafa22a1ca 0x7abafa22a28b 0xba5d5a

     t7abafa886940:l10:Fri Oct  4 09:15:22:396770:(nil):threadManager.cc:getThreadIndex:325:7abafa886940

     t7abafa886940:l11:Fri Oct  4 09:15:22:396770:(nil):threadManager.cc:getThreadIndex:360:index: 0:7abafa886940

     t7abafa886940:l07:Fri Oct  4 09:15:22:396772:(nil):event.cc:SystemEvent:585:Event: 2:0:(nil):(null)

     t7abafa886940:l03:Fri Oct  4 09:15:22:396772:(nil):event.cc:SystemEvent:700:System Shutdown Event

     t7abafa886940:l01:Fri Oct  4 09:15:22:396774:(nil):threadManager.cc:shutdown:1184:Application: dsTest  Version: 6.3.20241003  Build: Thu Oct  3 23:03:54 2024  Platform: x86_64

 

     Ex. Excerpt from ls_log

     t7ae7acc006c0:l06:Fri Oct  4 09:15:22:375685:(nil):../inc/licenseInfo.h:trace:242:Host: test29:10009

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375686:(nil):../inc/licenseInfo.h:trace:243:Contact: jason.couvier@mobileum.com

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375687:(nil):../inc/licenseInfo.h:trace:244:Version: 6.3

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375690:(nil):../inc/licenseInfo.h:trace:245:SystemId: 0xdf 08 6b b6 fb d6 56 95 81 33 15 ba 9d 16 77 6c

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375691:(nil):../inc/licenseInfo.h:trace:246:Request Time: 623a74d3951af

     t7ae7acc006c0:l06:Fri Oct  4 09:15:22:375692:(nil):../inc/licenseInfo.h:trace:247:TPS: 2000  Subscribers: 0

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375694:(nil):../inc/licenseInfo.h:trace:248:Last Validator: 0x00 00 00 00 00 00 00 00

     t7ae7acc006c0:l10:Fri Oct  4 09:15:22:375697:(nil):licenseServer.cc:checkAllowedTpsRestriction:627:test29

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375698:(nil):licenseServer.cc:checkAllowedTpsRestriction:638:Found host 'test29' in allowed list

     t7ae7acc006c0:l07:Fri Oct  4 09:15:22:375700:(nil):licenseServer.cc:checkAllowedTpsRestriction:646:Host test29 requested 2000 tps, but is restricted to 500 tps

     t7ae7acc006c0:l11:Fri Oct  4 09:15:22:375700:(nil):licenseServer.cc:checkAllowedTpsRestriction:661:0

     t7ae7acc006c0:l05:Fri Oct  4 09:15:22:375701:(nil):licenseServer.cc:controlFunction:381:failed to allocate license

 

reservations

The reservations command will list clients that have reserved a license and the assigned tps and subscriber resources, as well as the remaining checkout time before the next periodic license update request.

 

     licenseServer> reservations

 

        license_name contents:test28-lab

        users_total contents:4

        users_available contents:3

        tps_total contents:1000000

        tps_available contents:999500

        subscribers_total contents:60000000

        subscribers_available contents:59999990

        client

           client_host contents:test29

           contact contents:jason.couvier@mobileum.com

           cores_used contents:0

           tps_used contents:500

           subscribers_used contents:10

           expires_in

              seconds contents:318

 

 

Commands reserved for troubleshooting/maintenance  

Note: These commands are not recommended for normal use.

 

The following commands will interrupt the licenseServer by issuing either an abort, restart, or terminate.  If dsLicense is running as a service, the licenseServer application will abruptly restart.

 

abort

     licenseServer> abort

     Connection lost!!

 

     Ex.

     t7cc5baa006c0:l00:Fri Oct  4 08:22:55:545166:(nil):commandXml.cc:configParm:306:abort command received

     t7cc5baa006c0:l01:Fri Oct  4 08:22:55:545234:(nil):threadManager.cc:shutdown:1181:Signal context: 0x2994aac 0x6b0a5a 0x29626eb 0x6a2ec0 0x295fded 0x297d653

     t7cc5baa006c0:l01:Fri Oct  4 08:22:55:545236:(nil):threadManager.cc:shutdown:1181:Signal context: 0x297c1ae 0x297c1ae 0x297729f 0x2977811 0x6c0343 0x2992a7f

     t7cc5baa006c0:l01:Fri Oct  4 08:22:55:545238:(nil):threadManager.cc:shutdown:1181:Signal context: 0x7cc5c529ca94 0x7cc5c5329c3c

     t7cc5baa006c0:l10:Fri Oct  4 08:22:55:545239:(nil):threadManager.cc:getThreadIndex:325:7cc5baa006c0

     t7cc5baa006c0:l11:Fri Oct  4 08:22:55:545240:(nil):threadManager.cc:getThreadIndex:360:index: 4:7cc5baa006c0

     t7cc5baa006c0:l07:Fri Oct  4 08:22:55:545242:(nil):event.cc:SystemEvent:585:Event: 2:0:(nil):(null)

     t7cc5baa006c0:l03:Fri Oct  4 08:22:55:545243:(nil):event.cc:SystemEvent:700:System Shutdown Event

     t7cc5baa006c0:l01:Fri Oct  4 08:22:55:545245:(nil):threadManager.cc:shutdown:1184:Application: licenseServer  Version: 6.3.20241003  Build: Thu Oct  3 23:03:10 2024  Platform: x86_64

 

restart

     licenseServer> restart

     Connection lost!!

     Socket failed to connect (10.10.5.28:10009): Connection refused

 

     Ex.

     t76e03e2006c0:l04:Fri Oct  4 08:27:41:972350:(nil):commandXml.cc:configParm:468:Restart Command Received!

     t76e03e2006c0:l04:Fri Oct  4 08:27:41:982489:(nil):controlInterface.cc:controlFunction:1399:Exiting! (0x1)

     t76e03d8006c0:l04:Fri Oct  4 08:27:49:656550:(nil):controlInterface.cc:controlFunction:1399:Exiting! (0x2)

     t76e044a92940:l01:Fri Oct  4 08:27:49:659701:(nil):threadManager.cc:shutdown:1181:Signal context: 0x2994aac 0x5e4d7f 0x76e04442a1ca 0x76e04442a28b 0x5e8aaa

     t76e044a92940:l03:Fri Oct  4 08:27:49:659703:(nil):event.cc:SystemEvent:700:System Shutdown Event

     t76e044a92940:l01:Fri Oct  4 08:27:49:659710:(nil):threadManager.cc:shutdown:1184:Application: licenseServer  Version: 6.3.20241003  Build: Thu Oct  3 23:03:10 2024  Platform: x86_64

 

terminate

     licenseServer> terminate

 

     Ex.

     t7e48626006c0:l01:Fri Oct  4 08:29:13:168844:(nil):commandXml.cc:configParm:299:terminate command received

     t7e48626006c0:l04:Fri Oct  4 08:29:13:179026:(nil):controlInterface.cc:controlFunction:1399:Exiting! (0x1)

     t7e4861c006c0:l04:Fri Oct  4 08:29:13:686438:(nil):controlInterface.cc:controlFunction:1399:Exiting! (0x2)

     t7e4868f2b940:l01:Fri Oct  4 08:29:13:689538:(nil):threadManager.cc:shutdown:1181:Signal context: 0x2994aac 0x5e4d7f 0x7e486882a1ca 0x7e486882a28b 0x5e8aaa

     t7e4868f2b940:l03:Fri Oct  4 08:29:13:689540:(nil):event.cc:SystemEvent:700:System Shutdown Event

     t7e4868f2b940:l01:Fri Oct  4 08:29:13:689542:(nil):threadManager.cc:shutdown:1184:Application: licenseServer  Version: 6.3.20241003  Build: Thu Oct  3 23:03:10 2024  Platform: x86_64

Hosted Floating Licensing

With Hosted Floating Licensing, Mobileum hosts your master license on our license server and your dsTest instances obtain their licenses from that server. Your dsTest instances are paired with your master license and will only check out resources from that license. We maintain two mirrored license servers and each server is on a separate provider network for redundancy. In addition, license server status is continuously monitored by Mobileum.

Support supplies the license file that you will install on every platform - native OS or virtual machine - that will run dsTest. If you use dsClient Desktop you can install this type of license using the Status and Operations screen. Follow the instructions below to install the license manually.

The dsTest license file contains the license server host names, not their IP addresses. If your local network does not support DNS you will need to add the following entries to the /etc/hosts file on each dsTest platform:

ls3.dstest.net     107.20.65.178
ls4.dstest.net     63.34.158.74

Connectivity between the dsTest platforms and a license server must be maintained at all times. dsTest will periodically connect to a license server, and if it is unable to connect to either server dsTest will terminate. UDP port 10009 must be open for communications between dsTest and the license server. For a list of all ports that must be open for dsTest, refer to this FAQ.

First, transfer the file you received from Support one of your dsTest platforms and decompress it:

> tar -xvzf <license file name>.tgz

Place a copy of the resulting license.dsl in the /usr/local/devsol/config directory on all of your dsTest installations and start or restart dsTest.

Licenses are time-sensitive. The license server application requires that the date and time on the license server and any dsTest platform that requests a license be within 5 seconds of each other. We recommend synchronizing all of your platforms with an NTP server. An error message is generated when dsTest is started without a valid license or when time synchronization is out of tolerance. 

A "WARNING: Client and Server Time of Day not synchronized" message is generated when you check the license status if the platforms are not synchronized.

If you continue to receive "system corrupt" errors after installing your license and confirming that all platforms are properly configured, please submit the problem to Support.