Estimating how many licenses you need
Information about how runtime licenses are consumed 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. If your web service applications are secured by the Genero Identity Provider, additional licenses may be used. As GIP is based on micro services, each of its services your application calls consumes a license.
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
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 option is to use CPU Licenses.