Genero front-ends and license counting

Information about how runtime licenses are consumed that may help you use licenses as efficiently as possible.

A Genero license is not consumed at the MAIN statement of the application, but as soon as there is a user interface instruction in the code. This can be an instruction to open a window or form, to set an OPTIONS attribute, to display a menu, and so on.

If there is no UI instruction in the application, no license is consumed, even if it connects to a client. For example, no license is consumed if the application simply runs reports, accesses databases, completes file transfers, or makes front-end function calls.

TUI applications (applications run in text mode using a text-based user interface) and GUI applications (applications that use the Genero front-ends) have the same requirements for licenses.

There are licensing considerations specific to Web services and to the front-ends. These considerations are detailed in the following sections.

GDC applications

For Genero Desktop Client (GDC) applications, one license is consumed per GDC process. If you have multiple GDC clients started on one machine, and each GDC client runs one or more applications, one license will be used per GDC.

For example, if you run one or more GBC applications on a GDC server, there is one license used. But if, however, you start another GDC server to run applications, a new license is used for this process.

To summarize: For each GDC that is running applications, one license is consumed, no matter how many applications that GDC is running.

Web applications

For Genero Browser Client (GBC) applications, one license is consumed per browser. For example, if you have multiple applications started on browser tabs, one license will be used.

No additional licenses are consumed when an application is started by a RUN or a RUN WITHOUT WAITING request.

For example, if you run GBC applications on tabs of a Firefox® browser, there is one license used. If you start another browser, such as Chrome, or Microsoft® Edge, and so on, to run additional applications, a new license is used for each of these new browsers.

The license controller also views an application open in a browser's private or incognito tab as a distinct browser and a new license is used for that application.

In the event that the user refreshes a browser page running a GBC application (regardless of whether it is the first application started or one started by RUN), a new application is started but the same license is used, not a new one.

A browser refresh does not properly close the DVM that was running before the refresh. But as the GBC is no longer active, it is only a matter of time before the DVM times out on the server (set by the USER_AGENT timeout) and the DVM shuts down. See the section Freeing up licenses on this page.

DVM license use with RUN

When a user requests an application, the dispatcher starts a DVM to handle the request. It is the DVM that consumes a license. If a RUN or a RUN WITHOUT WAITING is executed within this application, the same license is used.

Web services

For Web service applications, one license is consumed per service started.

Genero Web service DVMs are managed in a pool by the GAS. Unlike application DVMs, the license is bound to the Web service process id. If a new child process is started, an additional license is consumed.

You can control the maximum number of licenses consumed by a Web service by configuring its MAX_AVAILABLE pool element. If the number of user requests exceeds what is available in the pool at any one time, the request will be queued (rather than blocked) until a DVM becomes available.

A Web service client does not consume a license. Users can make a request to a Web service server without needing a license.

Freeing up licenses

When a license is freed depends on how the application is exited. A license is freed when the applications closes, or to be more exact, when the DVM is shut down. If the user exits the application by clicking on the cancel or exit button, the DVM is shut down and the license is immediately freed.

If the user does not exit the application, but instead closes the user agent (browser), the DVM continues to run until the application times out (the number of seconds is set for the USER_AGENT timeout). After the timeout period passes, the proxy closes the connection to the DVM, the DVM shuts down, and the license is freed.

Checking licenses in use

To determine the number of licenses used, run the license controller command on the application server where the Genero runtime is installed. For example run:
fglWrt -u
Followed by:
fglWrt -a info users

Recommendations

It is recommended to size your runtime license number to the number of users anticipated to run your applications. Another solution is to use CPU licenses. For more information see the CPU licenses topic in the Genero Licensing manual.