|
UniSet
1.7.0
|
Сервис предназначен для работы с БД SQLite. В его задачи входит сохранение всех событий происходищих в системе в БД. К этим событиям относятся изменение состояния датчиков, различные логи работы процессов и т.п. К моменту запуска, подразумевается, что неободимые таблицы уже созданы, все необходимые настройки mysql сделаны.
Объект DBServer берёт настройки из конфигурационного файла из секции <LocalDBServer>. Возможно задать следующие параметры:
Для того, чтобы на момент отсутствия связи с БД данные по возможности не потерялись, сделан "кольцевой" буфер. Размер которго можно регулировать параметром "--dbserver-buffer-size" или параметром bufferSize=".." в конфигурационном файле секции "<LocalDBSErver...>".
Механизм построен на том, что если связь с mysql сервером отсутствует или пропала, то сообщения помещаются в колевой буфер, который "опустошается" как только она восстановится. Если связь не восстановилась, а буфер достиг максимального заданного размера, то удаляются более ранние сообщения. Эту логику можно сменить, если указать параметр "--dbserver-buffer-last-remove" или bufferLastRemove="1", то терятся будут сообщения добавляемые в конец.
К основным таблицам относятся следующие (описание в формате MySQL!):
DROP TABLE IF EXISTS `main_history`; CREATE TABLE `main_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `time` time NOT NULL, `time_usec` int(10) unsigned NOT NULL, `sensor_id` int(10) unsigned NOT NULL, `value` double NOT NULL, `node` int(10) unsigned NOT NULL, `confirm` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `main_history_sensor_id` (`sensor_id`), CONSTRAINT `sensor_id_refs_id_3d679168` FOREIGN KEY (`sensor_id`) REFERENCES `main_sensor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `main_emergencylog`; CREATE TABLE `main_emergencylog` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `time` time NOT NULL, `time_usec` int(10) unsigned NOT NULL, `type_id` int(10) unsigned NOT NULL, PRIMARY KEY (`id`), KEY `main_emergencylog_type_id` (`type_id`), CONSTRAINT `type_id_refs_id_a3133ca` FOREIGN KEY (`type_id`) REFERENCES `main_emergencytype` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `main_emergencyrecords`; CREATE TABLE `main_emergencyrecords` ( `id` int(11) NOT NULL AUTO_INCREMENT, `date` date NOT NULL, `time` time NOT NULL, `time_usec` int(10) unsigned NOT NULL, `log_id` int(11) NOT NULL, `sensor_id` int(10) unsigned NOT NULL, `value` double NOT NULL, PRIMARY KEY (`id`), KEY `main_emergencyrecords_log_id` (`log_id`), KEY `main_emergencyrecords_sensor_id` (`sensor_id`), CONSTRAINT `log_id_refs_id_77a37ea9` FOREIGN KEY (`log_id`) REFERENCES `main_emergencylog` (`id`), CONSTRAINT `sensor_id_refs_id_436bab5e` FOREIGN KEY (`sensor_id`) REFERENCES `main_sensor` (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
1.7.6.1