УкраїнськаEnglishmRussian
Вхід/Новий
У темі немає нових постів

Вылет OpenSCADA


Автор Повідомлення
Повідомлення створено: 15. 04. 2014 [07:06]
monia
Олег Намятов
Автор теми
Зареєстрован(а) с: 21.05.2012
Повідомлення: 173
сегодня ночью слетела OpenSCADA

сообщение в терминале

pure virtual method called
terminate called without an active exception
7|/ | OpenSCADA прервана!


при этом она присутствует в top
и на service openscada status отвечает что запущено, но до нее удаленно не достучаться

И еще я выясни, что перестало работать часть OpenSCADA, по скольку OpenSCADA принимала по ModBus параметры

[Повідомлення редагувалось 1 раз(ів), останній раз 15.04.2014 в 07:23.]
Повідомлення створено: 15. 04. 2014 [09:05]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"monia" wrote:

pure virtual method called
terminate called without an active exception
7|/ | OpenSCADA прервана!

Кривая сборка или сбой железа, поскольку сам компилятор проверяет при сборке отсутствие pure virtual methods. Кроме того никогда таких сообщений живьём не видел.

Learn, learn and learn better than work, work and work.
Повідомлення створено: 22. 05. 2014 [11:17]
monia
Олег Намятов
Автор теми
Зареєстрован(а) с: 21.05.2012
Повідомлення: 173
у меня снова эта проблема повторилась
теперь заметил некую зависимость

Данно:
1) Рабочий проект сервера OpenSCADA (QT обработка)
1.1) OpenSCADA складывает архив сообщений в MySQL 1 раз в 10 сек (по средствам стандартного архиватора)
2) Рабочий проект визуальной части сервера OpenSCADA (UI + WEB)
2.1) связь между QT станцией и UI станцией организованна через DAQ.Gate

мои действия которые привели к сбою по шагам:
1) в PHP скрипте случайно ошибся в запросе к MySQL таблице
JAVASCRIPT
$connection = mysql_connect($ms_host, $ms_user, $ms_pass);
....
SELECT .... FROM ... WHERE...
....
mysql_close($connection);

бывает :) все мы люди
2) в консоле выскакивает надпись
JAVASCRIPT
pure virtual method called
terminate called without an active exception
7|/ | OpenSCADA прервана!

3) пропадает связь с БД MySQL (OpenSCADA перестает видеть БД), все остальные БД (SQLite, PostgreSQL) видит нормально
4) в транспорте Self (который выделен для обслуживания DAQ.Gate запросов)
его настройки
JAVASCRIPT
Адресс: TCP::19001:1
Транспортный протокол: SelfSystem
Длина очереди: 100
Максимум клиентов: 100
Входной буфер (кбайт): 5
Keep alive запросов: 0
Keep alive время ожидания (с): 5

начинает расти количество открытых соединений > 100
5) Сервер визуальной части (UI + WEB) перестает получать данные по DAQ.Gate c сервера QT обработок

при этом сервер QT обработок работал нормально, кроме MySQL и передачи данных по DAQ.Gate

попытки восстановления станций QT обработок
1) перезапустил MySQL (думал что проблема в нем), не помогло
2) перезапустил OpenSCADA, помогло не на долго 2-4 мин, после чего ситуация повторилась, но буз выдачи сообщения в консоль
3) перезагрузил сервак, помогло :) но это не решение проблемы :(

обидно, что ни в каком логе не было ошибок

и еще не очень приятный момент
при любом изменение my.cnf и при перезагрузке mysql слетает кодировка
по умолчанию в my.cnf настроил utf8 и utf8_generic_ci
постоянно приходиться из OpenSCADA пересоздавать БД и таблицы архиватора сообщений (с PostgreSQL такого не наблюдаю)
Повідомлення створено: 22. 05. 2014 [13:33]
roman
Roman Savochenko
Moderator
Contributor
Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
"monia" wrote:

бывает :) все мы люди
2) в консоле выскакивает надпись

pure virtual method called
terminate called without an active exception
7|/ | OpenSCADA прервана!

Какая связь вообще между PHP и OpenSCADA?

"monia" wrote:

3) пропадает связь с БД MySQL (OpenSCADA перестает видеть БД), все остальные БД (SQLite, PostgreSQL) видит нормально

Какая связь если OpenSCADA вроде прервалась?

"monia" wrote:

4) в транспорте Self (который выделен для обслуживания DAQ.Gate запросов)
его настройки
JAVASCRIPT
Адресс: TCP::19001:1
Транспортный протокол: SelfSystem
Длина очереди: 100
Максимум клиентов: 100
Входной буфер (кбайт): 5
Keep alive запросов: 0
Keep alive время ожидания (с): 5

начинает расти количество открытых соединений > 100

Ресурс доступа где-то заблокировался на сервере, который опять-же вроде прерван.

"monia" wrote:

попытки восстановления станций QT обработок
1) перезапустил MySQL (думал что проблема в нем), не помогло

И не должно.

"monia" wrote:

2) перезапустил OpenSCADA, помогло не на долго 2-4 мин, после чего ситуация повторилась, но буз выдачи сообщения в консоль
3) перезагрузил сервак, помогло :) но это не решение проблемы :(

А это говорит прямо, что проблема с железом или ОС.
Ещё раз повторюсь, что такой ошибки самой по себе в природе быть не может если всё собранно корректно и за один сеанс.

"monia" wrote:

при любом изменение my.cnf и при перезагрузке mysql слетает кодировка
по умолчанию в my.cnf настроил utf8 и utf8_generic_ci
постоянно приходиться из OpenSCADA пересоздавать БД и таблицы архиватора сообщений (с PostgreSQL такого не наблюдаю)

OpenSCADA тут определённо не при чём, кроме того у меня не было проблем с кодировками при перегрузке MySQL, пока отлаживал востановление связи с БД.

Learn, learn and learn better than work, work and work.



3647