Настройка DBServer
1. Добавление DBServer в configure.xml
DBServer добавляется в configure.xml в секции <LocalDBServer>:
<LocalDBServer name="DBServer1" dbname="standpm" dbuser="dbadmin" dbpass="dbadmin" pingTime="10000" reconnectTime="15000" dbnode="GUINode"/>
где
name - имя объекта DBServer в репозитории omniNames dbname - название БД dbnode - узел БД dbuser - пользователь dbpass - пароль для доступа к БД pingTime - период проверки связи с сервером MySQL reconnectTime - время повторной попытки соединения с БД
DBServer необходимо добавить также в секцию <services>:
<services name="Services" section="Services" > <item id="3000" name="DBServer1"/> </services>
В секции <nodes> надо добавить DBServer для соответствующих узлов. Например:
<nodes port="2809"> <item id="2000" name="LocalhostNode" alias="" textname="Локальный узел" ip="127.0.0.1" infserver="" dbserver="DBServer1"/> <item id="2001" name="GUINode" alias="" textname="Графическая станция" ip="standpm" dbserver="DBServer1"/> </nodes>
2. Скрипт запуска DBServer
В скрипте запуска DBServer необходимо указать имя соответствующего объекта:
--name DBServer1
В случае, если в проекте используется собственная реализация DBServer, лучше вместо указания имени DBServer через параметр стартового скрипта использовать для этого функцию conf->getDBServer().
Для получения отладочной информации надо использовать --unideb-add-levels:
--unideb-add-levels info,crit,warn
В скрипт запуска SharedMemory необходимо добавить параметр:
--db-logging 1
Этот параметр указывает, что изменения состояния датчиков необходимо записывать в БД.
Также необходимо удалить параметр --sm-no-history, если он есть:
--sm-no-history 1
4. Собственная реализация DBServer
В проекте может быть собственная реализация DBServer. Для этого класс с реализацией DBServer должен наследоваться от класса DBServer_MySQL.
При этом в случае необходимости надо переопределить один или все виртуальные методы parse:
virtual void parse( UniSetTypes::SensorMessage* sm ); virtual void parse( UniSetTypes::DBMessage* dbmsg ); virtual void parse( UniSetTypes::InfoMessage* imsg ); virtual void parse( UniSetTypes::AlarmMessage* amsg ); virtual void parse( UniSetTypes::ConfirmMessage* cmsg );