Central aspects of the architecture of the Triple Mode Redundancy (TMR) Setup are:
•High availability: A server failure or a malfunction does not lead to a server downtime.
•All purchased licenses are always available.
Structure of TMR licenses
Each license is issued three times and provided with a special identifier, the TMR-Id. The TMR-Id is used to uniquely identify the three related licenses.
The three licenses are programmed in three different CmContainers, which all have the same CmActId. The TMR Setup only connects CmContainers with the same CmActId to a virtual CmContainer. The user only sees this one virtual CmContainer. Virtual CmContainers have a configurable, usually randomly generated serial number with the new mask byte 131, e.g. 131-59885682.
Of course, you can also create such a virtual CmContainer from three CmDongles; in this case the virtual CmContainer also has a serial number starting with 131.
2 out of 3 concept
For a TMR license to be valid and therefore available, a majority of at least two of the three matching licenses must be available. If only one of the three licenses is available, the TMR license does not appear in the virtual CmContainer.
Structure of the systems
The TMR Setup consists of a total of five servers, which are usually operated as virtual machines. A dual TMR Server is provided as an interface to the clients, which can be reached by the clients under a virtual IP address.
The TMR Server builds up the virtual CmContainer and the TMR licenses based on the CmContainer on the three downstream CodeMeter Backend Servers.
Virtual IP address
In the company network, the TMR Setup can be reached under a single virtual IP address. All requests are routed to the 'active' TMR server via the virtual IP address. At the start of the network infrastructure, i.e. the switch, the 'active' server has indicated that it wants to receive the packets from the fixed, virtual IP address in addition to its own IP address.
A second, non-active 'Standby' TMR server takes over the role of the 'active' TMR server as soon as the active TMR Server is no longer accessible. This is done via the Keepalived daemon, which is installed and configured on both TMR Servers.
For this it is necessary that the 'Standby' TMR Server is always informed about the current state of the 'Active' TMR Server. Therefore the 'Active' TMR Server always immediately sends all changes of its state to the 'Standby' partner. These are the configuration of the system itself including the configured virtual CmContainer, the current license assignment as well as all handles that are assigned to the downstream CodeMeter Backend Servers.
Due to the system, a short interruption of a few seconds and possibly individual packet losses can occur during such a role transfer due to an error or maintenance work.
Linux TMR Server
The TMR service running on the TMR Server is a completely new development that supports incoming CodeMeter API calls compatible up to the first CodeMeter version with Universal Firm Code, i.e. Version 6.10. The system is an original Debian operating system, on which then freely available software packages, as well as the TMR service are loaded.
Behind the two TMR Servers three downstream CodeMeter Backend Servers run, which can be operated either under Linux or Windows.