Selecting a license to purchase
When purchasing a license for your Genero products, you must select what type of licenses to purchase. Deciding what types of licenses to purchase requires you to evaluate your licensing needs: development or runtime, number of concurrent users, duration of license, and so on.
If you need additional assistance in determining which licenses to purchase, contact your Four Js sales office. They can ask the questions to ensure that you are purchasing the correct license for your needs.
Development and runtime licenses by product
Four Js provides both development and runtime licenses.
In development environments, you need development licenses for developers to compile their source files; the development license also allows that same developer to run applications. In production environments, you need runtime licenses for users accessing applications you deploy on production sites.
The following sections clarify your development and runtime license needs within the context of the different Genero packages and products.
Genero Business Development Language (BDL)
When working with the Genero Enterprise package of products, you license your Genero BDL installation.
- You need development licenses for your development environment. A development license is needed to compile Genero Business Development Language (BDL) source files.
- You need runtime licenses on production sites.
Genero Report Engine
Both Genero Enterprise and Genero Report Writer use the Genero Report Engine.
- In your development environment, you need development licenses for the Genero
Report Engine.
If you are using the Genero Enterprise package and have a Genero BDL development license under maintenance, you do not need to install a license for the Genero Report Engine; otherwise, a license is required. Most developers using Genero Enterprise will have a Genero BDL development license under maintenance.
If you are using the Genero Report Writer, a development license is needed to compile your source files.
- You need runtime licenses on production sites.
If you are using the Genero Enterprise package and have a Genero BDL runtime license under maintenance, you do not need to install a license for the Genero Report Engine; however, it is recommended that you have a runtime license for the Genero Report Engine, as it will improve performance.
If you are using the Genero Report Writer package, a runtime license is required.
Multi-user licensing
A license is needed for every server where a Genero product is installed and for every user that can access it to run your applications.
For example, when an application is requested from a user agent (desktop or Web browser), the dispatcher starts a Dynamic Virtual Machine (DVM) to handle the connection. It is the DVM that consumes the license.
When the application is closed and the DVM is stopped, the license is freed. This license is then available for another user. In this way the license controller maintains a pool of licenses and only active users consume licenses.
This section describes the options you have for purchasing volume licenses to ensure that you have a sufficient pool of licenses available when users connect to a server to run your applications.
User Licenses
The User license option ensures that a sufficient pool of licenses is available where a specified number of users may connect to a server to run applications.
The size of the User license pool is defined by the number of licenses purchased, which is encrypted in the license key and verified by the license controller.
One license is consumed by a user connected to one or more applications from a single user agent. For example, if a user starts a Genero Browser Client application in a browser and then runs additional Genero Browser Client applications from the same browser, only one license is consumed. For more information, go to Estimating how many licenses you need.
To determine the number of licenses used, run the license controller command, fglWrt
-u
followed by fglWrt -a info users
on the application server where the
Genero runtime is installed. If you are using the Four Js License Manager, run the license manager
command flmprg -u
.
-6017 User limit exceeded. Cannot run this program.
If
this occurs frequently, it is recommended to purchase more users and add them to the license.
However, a better option may be to consider using CPU licenses instead.CPU Licenses
The CPU license option ensures that a sufficient pool of licenses is available for an unspecified number of users connecting to a server to run your applications.
This licensing option provides for an infinite pool of available connections. The total number of user that can connect at any given time is ultimately constrained by the central processing unit (CPU) capacity to handle the connections. The CPU license is so called because it takes into account the number of cores/threads of the CPU to be licensed.
The number of physical or virtual CPUs (cores/threads) in the server where the product is installed must match the number encrypted in the license when verified by the license controller.
Determine the number of CPUs for licensing
fglWrt -a cpu
on the application server where the Genero runtime is installed, to
determine the exact number of CPUs (cores/threads) for licensing. If you are using the Four Js
License Manager, run the license manager command flmprg -a cpu
. The command returns
the number of cores/threads on the processor on your server.Cores and hyper-threading
- Cores describe the number of independent CPUs in a single physical multi-core processor.
- Some CPUs use hyper-threading to boost multi-tasking performance using threads. When a core uses hyper-threading, the operating system will treat the core as if it were two entirely separate CPUs. These are known as virtual CPUs.
Degraded Mode
-6180 CPU limit exceeded. The users control is reactivated.
When to use CPU licensing
- Large sites
- Large sites may potentially have many active users. CPU licenses are better suited than User licenses because they provide for an infinite pool of connections.
- Genero Browser Client (GBC) applications
- For GBC applications, detecting when the user has left the application or simply closed the
browser (as opposed to stopping the application by explicitly exiting it taking the appropriate
action) has implications for licensing. If the user closes the browser without exiting the
application, the DVM stays running and continues to consume a license. While the DVM will eventually
timeout, timeout configuration is not as critical to license management when CPU licenses are used. Tip:
We recommend that you read the examples given in the Licensing examples section of the Genero Application Server User Guide that show you how you can take advantage of ways of running applications and implementing GAS configurations so as to help you use licenses as efficiently as possible.
- Web services applications
- A Web Service consumes a license in the same way that a user does, with one notable difference. On reaching the available limit in the connections pool, Web services are queued rather than blocked as with users. However, the greater the number of connections you can allocate for the Web service pool, the greater the Web service throughput. This is why it is generally recommended to opt for CPU licenses for Web services.
- Logical Partition (LPAR) and Virtualization
- Where Genero is installed on LPAR or Workload Partitions (WPARs) using virtualization technology, such as that used on IBM® Advanced Interactive eXecutive (AIX®) systems, CPU licenses are recommended. In this case, you will need to provide the number of virtual CPUs allocated, not the number of physical CPUs in the server, to determine the exact number of CPUs for licensing.
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 web service DVM 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.
Subscription and perpetual licenses
Deciding on a license term depends on your software needs and/or on the duration of the license you require; whether you want to use a subscription-based licensing model or the perpetual licensing model for your runtime and/or development licenses.
Subscription license
A subscription license allows you to use the product on an ongoing subscription basis. A subscription license allows access to support services and to the latest versions of the software as they are released. A subscription license has a subscription date, which is the date when the license expires.
Genero products have a grace period, allowing you to continue to use the product after the expiration of the subscription license. For details, see My subscription license has expired, can I still use the installed versions of Genero?
If you are currently using Genero versions 3.20 or 3.10, please be aware that to take advantage of the subscription licensing model, you will need to update your licensing tools—specifically, the license controllers and the Four Js License Manager—to version 6.00.12 or higher. For details on upgrading license controllers, see the Install and License your Genero Products and/or Four Js License Manager User Guide.
Perpetual license
A perpetual license is a license you purchase once, which allows you to use the product indefinitely. A perpetual license is sold with a renewable maintenance contract. Maintenance allows access to support services and to the latest versions of the software as they are released. You can use a perpetual license as long as the version of product you are using was built prior to the maintenance expiry date. After the maintenance contract expires, there is a grace period when you can continue to use the product. For details of how this affects different products, see My maintenance contract has expired, can I still install a new update or patch?
Standard, evaluation, and backup licenses
A Genero product can be installed under a standard license, an evaluation license, or a backup license.
Standard license
A standard license forms an agreement with Four Js giving the licensee a non-exclusive, non-transferable development or runtime license to use the software in compliance with the terms and conditions of the End User License Agreement. This license is granted to the licensee only for the number of users (concurrent users or CPU users) and for the term (perpetual or subscription) specified in the purchase order accepted by Four J’s and paid for by the licensee.
Evaluation license
Evaluation licenses are issued to users trialing the software; for example, as part of the Genero Evaluation Program (GEP). Evaluation licenses are fully-functional licenses allowing use of the Genero family of products (compiler, database, Studio, and runtime environments) to a specified number of users. The licenses are time limited for a period (typically 90 days) and can only be activated (registered) once.
Backup license
A backup license is a duplicate license installed on a "mirror" machine for secure installations requiring fault-tolerant or fail-over configurations. The backup license is a replica of the active server license and must have an equal number of users and be of the same version.