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.

When selecting which licenses to purchase, follow these steps to help inform your decision.
Tip:

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.

  1. Identify which Genero products you need to license.
    You will need to know from which Genero package you installed: Genero Enterprise or Genero Report Writer.
  2. Identify the environment that your Genero product will be used in.
    • For development environments, you need development licenses. A development license is required for compiling source files, and for allowing developers to run applications for testing. In addition, you may need runtime licenses for QA testers, document writers, and other internal staff that need to run the same applications.
    • For production sites, you need runtime licenses. A runtime license is required for users accessing deployed applications.
  3. Identify how many users need a license.
    Identify the number of concurrent users likely to use the software. The number of users will help you choose between a User license or a CPU license.
    • A User license is for a specific number of concurrent users.
    • A CPU license allows an unlimited number of users.
    To learn more, see Multi-user licensing.
  4. Decide which licensing model you wish to use: subscription or perpetual.
    • A subscription license is time-limited, but can be renewed each year.
    • A perpetual license allows you to use the license indefinitely, but will require a renewable maintenance contract to access current releases of the software.
    For more information, see Subscription and perpetual licenses.
  5. Identify the type of license needed: standard, evaluation, or backup.
    In most cases, a standard license is required.
    Important:

    Running applications in a Docker container

    If your Genero product sits in a Docker container, Four Js recommends using the Four Js License Manager (FLM) to manage the license. The FLM must reside on a physical machine outside of the Docker instance. For more information, go to What is the Four Js License Manager (FLM)?.

    If you do not want to use the license manager and would prefer to license the Genero installation directly within the Docker container, you must request a special license from Four Js support. Specify that you need a license that can be used to license a Genero product locally within a Docker container.

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.

When the pool of connections is exhausted, the Dynamic Virtual Machine (DVM) will output a message blocking access to new users.
-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

Before ordering CPU licenses, you need to run the license controller command, for example, 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.
Note:

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.
For example, if your server has an 8-core processor, the command output will show 16 virtual CPUs if the cores use hyper-threading. Your CPU license order must be for the number of CPUs output by the command.

Degraded Mode

CPU licenses operate in degraded mode if the physical or virtual CPUs on the server exceed the CPUs purchased on the license. The license controller will limit the size of the license pool to the number of CPUs purchased multiplied by 25. So, for example, if a server has 32 CPUs and the license is only for 16, then the available pool will be 400 connections. If you see the following message, it means that your CPU license is operating in degraded mode. To resolve this, you will need to contact your local Four Js sales office.
-6180 CPU limit exceeded. The users control is reactivated.

When to use CPU licensing

CPU licensing is recommended for the following:
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

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 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.