Содержание материала

Утверждается что система Electro может работать с различными СУБД. Поподробнее пожалуйста.

Система Electro взаимодействует с СУБД через ODBC-драйвер. Следовательно, в принципе может использоваться любая СУБД поддерживающая ODBC. На практике, однако, имеются особенности реализации в конкретной СУБД как интерфейса ODBC, так и собственно языка запросов к БД (SQL). Была проверена работа Electro с несколькими СУБД, список которых и упоминается в рекламных материалах (MySQL, MSSQL, MS Access, Informix, Oracle, Interbase, Sybase, Cache).
[Конечно,эффективное сопряжение Electro с различными СУБД основано не только и не столько на использовании ODBC. Также, архитектура системы основана на том, что компоненты системы (приложения) работают с данными только через унифицированный интерфейс Ядра (electro.dll), в котором и спрятаны все особенности работы с БД.]
Таким образом, для конкретного объекта можно выбрать наиболее подходящую СУБД, оценивая их по стоимости, простоте эксплуатации, скорости работы; наконец просто исходя из вкусов Заказчика либо Исполнителя работ. Более того, СУБД можно сменить в процессе эксплуатации системы Electro – конфигурация системы и накопленные измерения экпортируются/импортируются в виде xml-документов.
Разработчик системы Electro предпочитает использовать условно-бесплатную СУБД MySQL (www.mysql.com). Для mysql подготовлена специальная версия electro.dll, использующая не ODBC, а специальный интерфейс данной СУБД. Подобные заточки разрабатываются и для других систем, например SQLite ( www.sqlite.org ).

Существует ли версия система Electro для операционной платформы Linux?

Да. Все системные компоненты Electro (Ядро electro.dll, Сервер ElectroHost.exe и Драйверы устройств) перенесены на Linux. Точнее, существует единый комплект исходных текстов системы Electro, который может быть странслирован как для Windows, так и для Linux. «Родной» платформой является Windows; поэтому некоторые подсистемы Electro (например, подсистема аварийных оповещений) еще не имеют полного аналога для Linux.
Прикладная часть Electro на Linux не перенесена и в ближайшем будущем это не планируется. Windows-клиенты могут взаимодействовать с Linux-сервером.
В качестве основной СУБД для Electro-Linux используется MySQL; для некоторых конфигураций используется SQLite.
В свое время, мотивация переноса Electro на Linux основывалась на трех позициях сравнения операционных платформ – стоимость, надежность, требования к аппаратным ресурсам; предпочтения отдавались Linux. Imho, сейчас это не так явно выражено. Однако, есть сфера применения Electro (например, Устройства Сбора Данных) где позиции POSIX-операционных систем достаточно сильны.

Система не работает / не выполняет нужные функции. В чем причина?

Прежде всего, необходимо изучить файлы в каталоге Logs (и в первую очередь со свежей датой модификации). В частности, система использует следующие файлы:
Electro.log - журнал событий системы. Свежие события дописываются в конец файла.
XmlGen.log - протокол работы программы XmlGen.exe.
Alarm.log - журнал подсистемы оповещения.
Pryyyymm.log - журнал печати на системную консоль за yyyy/mm (год/месяц).
DispTask.log - журнал невыполненных заданий (завершенных Диспетчером назначенных заданий ElectroHost с кодом завершения не равным 1).
RepGen.log - протокол работы программы RepGen.exe.(генератор отчетов).
ElectroWeb.log - журнал Вэб-сервера ElectroHost.
ElectroHost_crash.log- дампы системных сбоев ElectroHost.
Файлы с расширением *.log1 – это результат переименования соответствующих log-файлов после достижения ими установленной предельной длины.

Кроме log-файлов, компоненты системы Electro формируют в процессе работы различные отладочные сообщения (функция API Win32 OutputDebugString()). Эти сообщения могут быть зафиксированы с помощью специальных отладочных средств, в частности программой DebugView – www.sysinternals.com.

Необходимо ли дополнительное обслуживание СУБД (в частности, MySQL), используемой системой Electro?

Да, необходимо. Очевидно, что система Electro не может сама по себе гарантировать безсбойное функционирование сложного комплекса – аппаратных средств, операционной системы, СУБД. Обслуживающий персонал (администратор системы) должен следить за аварийными сообщениями, предпринимать меры по их устранению, периодически выполнять необходимые регламентные работы.
Применительно к СУБД MySQL, администратор должен выполнять периодическое резервное копирование данных и, в случае нарушения целостности БД – восстановление БД, в том числе из резервной копии. Эти действия можно выполнить с помощью программы mysql.exe (консоль MySQL), входящей в комплект поставки СУБД MySQL. Перед выполнением каких-либо действий необходимо прекратить работу системы Electro (завершить все программы, выполнить для ElectroHost.exe команду shutdown).


Если у Вас возникло подозрение о наличии проблем с БД, в первую очередь посмотрите в конец файла mysql/data/mysql.err – есть ли там сообщения об ошибках? И вообще, как Администратор системы, делайте эту проверку регулярно.

Для входа в консоль MySQL запустите приложение
mysql --user=root
(в данном примере предполагается, что в исходном состоянии в системе безопасности MySQL зарегистрирован пользователь root, без пароля, с правами администратора)
Последующие команды выполняются в среде консоли.

Вначале небходимо выполнить подключение к базе данных Electro либо ElectroCNF:
connect electro;

Для выполнения резервного копирования [таблицы trend в каталог c:/mysql/data_arc (каталог необходимо создать вручную)] необходимо выполнить команду
backup table trend to ‘c:/mysql/data_arc’;
В результате в указанном каталоге будут созданы файлы trend.myd и trend.frm.

Для восстановления [таблицы trend] из резервной копии необходимо предварительно удалить таблицу из основной БД:
drop table trend;
после чего выполнить команду
restore table trend from ‘c:/mysql/data_arc’;

Для оптимизации [таблицы trend] (с целью ускорения доступа и утилизации неиспользуемой памяти) используется команда
optimize table trend;

Иногда, как следствие внезапного отключения питания компьютера в момент записи информации, таблица trend «портится» и работа системы становится невозможной. В этом случае, в первую очередь следует попытаться отремонтировать таблицу командой
repair table trend;
Как правило, команда repair восстанавливает работоспособность таблицы без существенной потери данных. В противном случае следует командой restore восстановить таблицу из резервной копии либо просто удалить ее (при запуске, система Electro заново создаcт таблицу).

Полную информацию по работе с СУБД и рекомендации по обслуживанию см. в Руководстве Администратора MySQL.

Можно ли автоматизировать процесс генерации отчета и его посылки, например, по электронной почте?

Комплекс Electro состоит из отдельных приложений, многие из которых (RepGen.exe, XMLGen.exe, MakGen.exe и др.) являются консольными и специально спроектированы для использования в некоторой среде исполнения (командный BAT-файл, Windows Script). Таким образом, Администратор системы может запрограммировать сколь угодно сложные действия, инициируя их выполнение вручную либо в Диспетчере Назначенных Заданий (штатное средство операционной системы; аналогичное средство имеется также в составе ElectroHost).

В следующем примере командного файла генерируется отчет (RepGen из состава Electro), после чего выполняется удаленное подключение (rasdial – штатная утилита Windows) к почтовому серверу и посылка почты (популярная почтовая программа TheBAT).

RepGen RID=14 DT1=LASTDAY XLS=C:/Electro/Report.xls
if ERRORLEVEL 1 GOTO err1
rasdial OblEnergo tec passw
if ERRORLEVEL 1 GOTO err2
"c:/The Bat!/THEBAT" /MAILU=tec;TO=obl@mail.ua;S=report;ATTACH=c:\electro\Report.xls;SEND /EXIT
if ERRORLEVEL 1 GOTO err3
:exok
rasdial /DISCONNECT
exit 1
:err1
echo ОШИБКА ГЕНЕРАЦИИ ОТЧЕТА
exit -101
:err2
echo ОШИБКА СОЕДИНЕНИЯ c ChernObl
exit -100
:err3
echo ОШИБКА ОТПРАВКИ ПОЧТЫ
exit -102

Передать файл по протоколу FTP можно также c помощью штатного FTP-клиента windows:
ftp -n -s:ftp.scr
где ftp.scr – командный файл
open 192.168.1.1 ; подключение к FTP-серверу
user UserPC1 ; регистрация: пользователь UserPC1
xxxxx ; пароль xxxxx
prompt ; команды настройки
binary ; передачи данных
hash ; ( см. справку Windows по разделу ftp)
lcd c:\Electro ; локальный каталог
cd \ ; удаленный каталог
send Report01.xls
bye ; конец ftp-сеанса

Как настроить дублирующий канал связи

Дублирующий (альтернативный, резервный) канал связи определяется с помощью конфигуратора системы, закладка Устройства:

настроить дублирующий канал связи

В данном примере для счетчика SL7_33001786 указано основное соединение «Опрос через СОМ» и резервное содинение «Опрос через Моха1» (разрешен автоматический переход). Также, в блоке Контроль связи указываются реакции на события утери и восстановления связи и параметр LQlim0.
В процессе функционирования системы в окне Electro журнал, закладка Диагностика, раздел CONFIG/DEVICES отражается текущее состояние связи с счетчиками:
Electro журнал Строка LQlim0 показывает значение соответствующего параметра конфигурации.
Строка LQ (Line Quality) показывает текущее значение качества линии. Это целое число в диапазоне 0-100. При каждом неудачном сеансе связи LQ уменьшается на 1. При каждом удачном сеансе связи LQ увеличивается на 1.
Строка AlterConn показывает, используется ли основное (AlterConn=0) или альтернативное (AlterConn=1) соединение.

Для удобства визуального контроля за устройствами используются пиктограммы:
Зеленый квадрат AlterConn=0 и LQ=100
Желтый квадрат AlterConn=0 и LQlim0<=LQ<100
Красный квадрат AlterConn=0 и LQ<LQlim0
Зеленый круг на красном квадрате AlterConn=1 и LQ=100
Желтый круг на красном квадрате AlterConn=1 и LQlim0<=LQ<100
Таким образом пиктограмма «Зеленый круг на красном квадрате» говорит о том, что используется резервный канал, качество линии прекрасное.

При отметке ‘Автоматически’ в свойствах устройства система автоматически производит переключение между основным и резервным каналами на основе сравнения значений LQ и LQlim0:
- как только значение LQ становится меньше LQlim0 (т.е. при очередном неудачном сеансе связи), значение AlterConn меняется на противоположное (с 0 на 1 либо с 1 на 0) и устанавливается LQ=100.

Изменить используемый канал связи, вне зависимости от отметки ‘Автоматически’, можно вручную – значение переменной AlterConn доступно для редактирования.

Контроль утери/восстановления связи (с выполнением соответствующих реакций) выполняется следующим образом:

  • При запуске системы устанавливается значение OK=TRUE
  • Значение OK переводится в FALSE, если при очередном неудачном сеансе выполнилось условие LQ<LQlim0.
  • Значение OK переводится в TRUE, если при очередном удачном сеансе выполнилось условие LQ>LQlim0.

Внимание. Значения AlterConn, OK и LQ периодически сохраняются (в реестре операционной системы). При перезапуске Электро их значения соответственно восстанавливаются.