Crash-free setup

Industrial computers are usually turned off without a graceful shutdown. This may cause database damages or data loss.

EVA ICS uses several mechanisms to protect its data against such accidents.

Inventory configuration

All configuration is kept inside crash-free registry and is protected by default.

Users and API keys

Users and API keys (dynamic) are stored in external databases. As new users and keys are added rarely, it usually does not cause any errors.

However in production environments it is highly recommended to avoid using default SQLite databases and switch controllers to either external one or switch to a more robust one (e.g. PostgreSQL).

Item states

Keeping Universal Controller items (units and sensors) states is usually not important, as they can be easily restored from the equipment.

Keeping Logic Manager items (lvar) states can sometimes be important as they may carry logical or custom information.

For both, item state storage can be switched to registry, which is slower but much more safe. To switch the controllers, append the following parameter in “server” section of “config/<controller>/main” registry key:

server:
    # ............
    state-to-registry: true

Logs

All logs are not considered as the important data and there is no built-in mechanism to protect them. API call logs can be stored in an external database, controller logs - on network partitions.

Suicide timeouts

EVA ICS controllers are designed to automatically restart themselves on critical events. However, sometimes a process may freeze during shutdown. “Suicide timeout” variable is shutdown timeout value, after the process is automatically killed with “KILL” signal.

Warning

It is not recommended to misuse process suicide features, as it may lead to data corruption, e.g. for state databases.

server:
    # ............
    suicide-timeout: 30

The default value is 30 seconds.