Requirements
Requirements for both TMR Server computer are:
•amd64 / armhf with at least 512 MB RAM and 2 cores
•operating system Debian
|
Please note, that the TMR Server machines - if they are located in virtual environments - are not installed on the same host. |
|
By default, the number of file descriptors in Linux distributions is limited to a relatively low number affecting the number of open TCP connections. If the number is not sufficient, the system administrator should loosen this restriction and adjust the number of available file descriptors according to individual needs. |
Installation
|
Please note that if TMR installations already exist, the codemeter-tmr-server service on both TMR servers must be stopped before the installation (up- or downgrade). |
To install the operating system on the TMR Server computers, please proceed as follows:
1.Install the Debian operating system (see here).
2.Download and install the package codemeter-tmr-server_[version]*_amd64 or[codemeter-tmr-server_[version]*_armhf].deb which includes the CodeMeter-own service TMR server and other required components.
3.Repeat steps 1. and 2. for the other TMR Server computer.
Moreover you must install the keepalived daemon on each TMR Server computer. For installation see https://www.keepalived.org/doc/installing_keepalived.html.
Setup
The setup of the two TMR Server computers requires for each computer the adaptation of the supplied configuration files, which you first copy and then adapt to your requirements. This sets up all communication paths, e.g. IP address and port information.
The configuration file keepalived.conf
Keepalived is a daemon which is located on both TMR Servers and is used to detect failover cases and to manage the virtual address of the TMR Setup. These two keep-alived instances monitor each other by exchanging messages via the Virtual Router Redundancy Protocol (VRRP).
To update the keepalived configuration in the keepalived.conf file, please proceed as follows for both TMR Server computer:
1.Copy the blueprint from directory /usr/share/doc/codemeter-tmr-server/examples/.
2.Save the blueprint to the directory /etc/keepalived/.
3.Customize the server environment.
Specify the interface names and IP addresses.
vrrp_instance tmr_IPv4 {
interface front
virtual_router_id 42
virtual_ipaddress {
192.0.2.42
}
track_interface {
back
}
track_script {
tmr_status
tmr_manual_failover
}
}
vrrp_instance tmr_IPv6 {
interface front
virtual_router_id 42
virtual_ipaddress {
fe80:1::2a
2001:db8:0:f::2a
}
track_interface {
back
}
track_script {
tmr_status
tmr_manual_failover
}
In general, the example configurations bases on the following schematic illustration.

For more information about Keepalived configuration settings, see www.keepalived.org.
The TMR configuration file tmrconf.json
The customization of the TMR configuration file is necessary so that clients can access the duplicated TMR Server computers via a virtual IP and CmContainers are recognized by the three downstream CodeMeter Backend Server computers.
To update the TMR configuration in the tmrconf.json file, please proceed as follows for each TMR Server computer:
1.Copy the blueprint from directory /usr/share/doc/codemeter-tmr-server/examples/.
|
Two blueprints are available: tmrconf.json.minimal and tmrconf.json.full. In the minimal version you only have to adjust the IP address and port information. The remaining configuration can then be done via the WebAdmin of the TMR Server. The full version includes all enries. |
2.Save the blueprint into the directoy /etc/wibu/CodeMeter/.
3.Customize to the Server environment.
a)Setup the TmrServer.
|
•For TwinServer, enter the IP address and port information of the other TMR server computer.
•The values for timeouts for Remote Procedure Calls (RPC) can also be configured here. |
"TmrServer": {
"TwinServer": {
"Ip": "2001:db8:0:f::17",
"Port": 22354
"ConnectTimeoutInSeconds": 3
"TransferTimeoutInSeconds": 10
}
}
b)Setup the three CodeMeter Backend Server CmServer.
|
For specifying the Ip parameter next to IPv4 or IPv6, syntactically valid hostname address formats can be used. |
"CmServer": {
"NetworkRetryIntervalInSeconds": 30,
"Server": [
{
"Ip": "2001:db8:0:b::1",
"Port": 22350
},
{
"Ip": "2001:db8:0:b::2",
"Port": 22350
},
{
"Ip": "2001:db8:0:b::3",
"Port": 22350
}
}
]
|
When creating the TMR configuration file and setting the network port of the TMR Server, the codemeter-tmr-webadmin must be restarted after starting codemeter-tmr-server. This also applies to changing the network port of the TMR Server at a later time. |
Handling Log Files
If you have configured a protocol file, it can become very large.
Wibu-Systems recommends using the Linux system command logrotate to prevent the log files from becoming too large and to archive "previous" log files (see https://linux.die.net/man/8/logrotate for the command).
|
Please use the options copytruncate and delaycompress of the logrotate command, because the TMR server keeps the log file open. |
You may also execute this system command regularly in a scheduled cronjob.