Floating License Support (Magic xpa 3.x)
All of the licenses managed by the space are floating licenses (both for threads and users) with an option to reserve a fixed (minimum) number of license threads or users for your project. The licenses are available for use by all of the projects. The Space acts as the license server. Before executing a flow, the worker will attempt to check-out the license from the pool. When it has finished executing the flow, the worker will check the license back into the pool.
This lets you make optimum use of licenses in a multi-project environment, by sharing licenses between servers. Therefore, when a particular project is idle, other projects can utilize its licenses.
You can use the ReservedUsersLicenses and ReservedThreadsLicenses attributes in the projectsStartup.xml file, to reserve a number of users and/or thread licenses per project. Since version: 3.2
Note: Multiple RIA clients from the same machine consume one (RIA) license, similar to the behavior when using the broker. Since version: 3.2
For more information see: Licensing.
Magic xpa's default behavior is that you have to define the number of licenses that each server uses during the execution of a project. This number is checked across all the servers in a multi-project environment to ensure that it is within the license limitation. For example, if you have a license with 20 threads, and you have two projects running in a multi-project environment, you have to distribute the threads in advance. Project A might receive 15 threads, while Project B receives 5.
Note: Multiple RIA clients from the same machine consume one (RIA) license.
In a multi-project environment, each server runs a different project. This means that the capacity of each server (project) is a key issue, and the ability to share licenses (threads/users) is very important.
Magic xpa's floating license mechanism lets you make optimum use of these licenses in a multi-project environment, by sharing licenses between servers. Therefore, when a particular project is idle, other projects can utilize its licenses.
Because the Magic xpa broker controls the servers and their capacity, it needs to know the total number of licenses that are available for its servers. The broker adds up the total Max no. of threads and Max no. of users belonging to each server, except for servers whose Max no. of threads or Max no. of users are defined as -1 (see 2, below), which are defined by your license. The broker uses this figure as the total number of available threads/users. If the broker sees that a particular server is not using its allocated number of threads/users, they can be used by other servers.
When using the floating license mechanism, you cannot limit one engine to the maximum license usage.
To use the floating license functionality for the broker middleware, follow these steps:
Define one server with Maximum Number of Concurrent Requests >= 0 or Maximum Number of Concurrent Users >= 0 (for RIA). This setting is required since at least one of the servers has to check out a number of licenses. A value of 0 means that the engine will check out all of the threads/users that are defined in the license.
In all other servers, set the Maximum Number of Concurrent Requests or Maximum Number of Concurrent Users (for RIA) to -1. This means that they will share the license with the engine(s) that already checked out a number of threads.
In the mgrb.ini file, set the FloatingLicense flag to Y.
The Floating License support for RIA is since version: 1.9e.
Only enterprise server engines (ActivateRequestsServer=Y) that are in background will participate in the pool that the broker accumulates when FloatingLicense=Y. Since version: 1.9j and 2.1
Servers in Online Deployment mode (DeploymentMode=R) cannot register to a broker in Floating License mode (FloatingLicense=Y). However, Studios in Online Deployment mode can register to a broker in Floating License mode. Since version: 1.9j and 2.1
The broker allows RIA floating licensing only for Magic xpa servers that are not specific to either desktop (MOBILE=N) or mobile (MOBILE=Y). Since version: 2.5