Licensing (Magic xpa 3.x)
The Magic xpa license mechanism is floating by nature (both for threads and users), with an option to reserve a fixed (minimum) number of license threads or users for each 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 usually (refer to the note below) attempt to check-out the license from the Space. When it has finished executing the flow, the worker will check the license back into the Space. 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 (unless licenses are reserved – see the Reserving License Threads or Users for a Project section below).
When a Magic xpa server is started by the Space middleware, for each license feature (ENT and/or RIA), the Magic xpa server will check out (from the license file/server) and will write licenses to the Space only if that specific license feature (that is, a license feature with the same serial number) was not already written to the Space. In practice, only one Magic xpa server will write licenses to the Space, regardless of the number of Magic xpa servers started simultaneously (Since version: 3.1).
Note: Multiple RIA clients from the same machine consume one (RIA) license. Since version: 3.2
All Magic xpa installations should be configured to point to the same license file (you can put it in a shared location).
The first engine that starts writes the number of licenses to the space. Then, other engines can also run. It is not required that the Magic xpa engine that allocated the license continues to run. Once it sets the thread and user count in the Space, it is not needed anymore to maintain the license. It can therefore be stopped and started like any other Magic xpa engine on the grid.
If you are running multiple projects, and some projects may consume all threads or users under stress conditions (for example, there are many Web services and/or HTTP requests), you should consider reserving a minimum fixed amount of license threads or users for critical projects that need to run continually.
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: Licenses reserved for a given project are acquired by workers in Magic xpa servers that serve that project before trying to acquire non-reserved licenses. Since version: 3.2