How Acushare License Management Works

The acushare utility program is an important component of any UNIX or Linux system running AcuServer or the ACUCOBOL-GT runtime. Acushare monitors the number of simultaneous users of extend products, where a "user" is defined as a unique terminal name.

Note: For programs called via AcuConnect and CGI processes started by a Web server, each process on the server is counted as a separate user. Likewise, if a terminal allows users to log in with more than one Telnet (tty) session under a single user name, each Telnet session is counted as a separate user by the license manager.

Acushare keeps a list of active users (terminals) and ensures that the number of users executing the runtime simultaneously does not exceed the limits of the site's license.

Acushare keeps track of users for each product's distinct serial number. For example, if you have a runtime for 10 users, and a second runtime for 20 users, a total of 30 users could be executing applications on the system simultaneously, if both runtimes are executing. This ensures that distinct software applications are monitored separately.

When the ACUCOBOL-GT runtime or AcuServer run, they perform the following actions related to license management:

Check acushare

When the ACUCOBOL-GT runtime or AcuServer starts up, each checks to make sure that acushare is running on the system. If it's not running, the product attempts to start it. For this automatic startup to be successful, acushare must be located in the product's search path.

If the product cannot start acushare, it exits with the following message:

"Shared memory and license manager (acushare) is not running"

Register each terminal name

If acushare is running on the system, the ACUCOBOL-GT runtime or AcuServer attempts to register itself with acushare. If the user limit has not already been reached, the registration occurs. acushare places the user's (terminal) name on the list of active product users (unless it's already there).

If the user limit specified in the site's license file would be exceeded by the addition of this user, the product checks the product's configuration file (and then checks the environment), to determine if it should retry the registration process in a few seconds.

A runtime configuration variable can be used to specify the number of retries allowed when you are executing the runtime. If this variable is set to a positive integer value, the runtime waits n seconds and tries again to register itself. The value n (the number of seconds to wait between retries) is set in the variable A_RETRY_DELAY. If no retries are desired, or if all retries have been performed and the limit is still exceeded, the product exits with a message.

Recheck acushare

Each active product checks periodically to determine if acushare is still running. If the product detects that acushare has stopped and has not been restarted, it tries to restart it itself. If unsuccessful, it issues the following warning message:

"License manager (acushare) is not running"

This warning message appears at the line specified in the runtime configuration variable SCREEN ERROR-LINE. Or, if that's not set, at the bottom of the screen.

If acushare has not been restarted by the time the product makes another periodic check, the product exits.

End a session

When the user ends a session on the terminal, the product receives a signal to terminate. If the product was executed with "-h" or "-sb", it ignores the signal and continues to run. When a product is executing without a controlling terminal, acushare displays the terminal name as (none). The terminal is removed from acushare's list of active users only when the product terminates.