Форум TRACE MODE: техническая поддержка
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 6 » SIAD/SQL. Архивирование в TRACE MODE / SIAD/SQL. Data Logging in TRACE MODE » Не восстанавливается связь

   
Автор / Author Тема / Topic: Не восстанавливается связь
arkos
Forum Haunter / Завсегдатай форума
Участник № / Member № 6144


Icon 1 отправлено / posted      Профиль для / Profile for arkos           Редактировать/удалить сообщение / Edit/Delete Post 
Здравствуйте! Источник данных БД MySQL Workbench. Для связи с помощью ODBC коннектора, скачала с сайта MySQL драйвер Connector/ODBC 5.2.5. Все работает, НО при кратковременной потере связи с источником Связь не восстанавливается.(Связь контролируем с помощью 91 атрибута канала CALL SQL). Что делать?
Сообщения / Posts 115 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Для надежного восстановления связи необходимо принудительно разрывать связь с БД после каждой сессии.

Из документации (раздел “Выполнение SQL-запросов в реальном времени”):
“Для принудительного прерывания сессии в канале CALL.SQLQuery нужно установить флаг Запрос времени значения (атрибут 50). ”

Сообщения / Posts 15201 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arkos
Forum Haunter / Завсегдатай форума
Участник № / Member № 6144


Icon 1 отправлено / posted      Профиль для / Profile for arkos           Редактировать/удалить сообщение / Edit/Delete Post 
Что подразумевается по словом "сессия"? Данные нам нужно считывать постоянно.
Сообщения / Posts 115 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Cессия - это контекст, в котором работает SQL-сервер (см. стандарт SQL).

Указанная выше процедура не препятствует выполнению Ваших SQL-запросов.

Сообщения / Posts 15201 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arkos
Forum Haunter / Завсегдатай форума
Участник № / Member № 6144


Icon 1 отправлено / posted      Профиль для / Profile for arkos           Редактировать/удалить сообщение / Edit/Delete Post 
Установили флаг в канале CALL.SQLQuery Запрос времени значения (атрибут 50). Проблема не решилась - связь не восстанавливается. Может мы что-то еще не учитываем? (БД MySQL Workbench находится на удаленном компьютере)
Сообщения / Posts 115 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Для контроля задайте CALL.SQL флаг “Отладка” и внесите в конфигурационный файл запуска узла ключ
DEBUGON=42000
В протоколе профайлера Вы можете получить примерно следующие записи:

(12:43:36) INF_RTM:База_данных#1:17 atr 2 chg to ffff (T) - групповой запрос данных
(12:43:37) INF_RTM:SQL: connect База_данных#1:17 - коннект
(12:43:37) INF_RTM:SQL : exec prepare R=0xffff for next fetch all row База_данных#1:17
(12:43:38) INF_RTM:SQL: select 13 row База_данных#1:17
(12:43:38) INF_RTM:SQL: fetch row from 0 to 13 База_данных#1:17 - данные получены
(12:43:38) INF_RTM:SQL: disconnect after select База_данных#1:17 - сессия прерывается
(12:43:38) INF_RTM:База_данных#1:17 atr 0 chg to 0 (T) - сброс значения канала
(12:44:15) INF_RTM:База_данных#1:17 atr 2 chg to 1 (T) - запрос индивидуальный
(12:44:16) INF_RTM:SQL: connect База_данных#1:17 - коннект
(12:44:16) INF_RTM:SQL : exec 1 from all База_данных#1:17
(12:44:20) INF_RTM:SQL: select 13 row База_данных#1:17 - данные получены
(12:44:20) INF_RTM:База_данных#1:17 atr 0 chg to 0 (T) - сброс значения канала без дисконнекта
(12:45:10) INF_RTM:База_данных#1:17 atr 50 chg to 1 - взведение флага “Запрос времени значения
(12:45:37) INF_RTM:База_данных#1:17 atr 2 chg to 1 (T) - запрос индивидуальный
(12:45:37) INF_RTM:SQL: connect База_данных#1:17 - коннект
(12:45:37) INF_RTM:SQL : exec 1 from all База_данных#1:17
(12:45:43) INF_RTM:SQL: select 13 row База_данных#1:17 - данные получены
(12:45:43) INF_RTM:Manual disconnect База_данных#1:17 - сессия прерывается
(12:45:43) INF_RTM:База_данных#1:17 atr 0 chg to 0 (T) - сброс значения канала

Если в канале CALL.SQLQuery не установить флаг Запрос времени значения (атрибут 50) и
прерывания сессии с БД отсутствуют, то при перезапуске удаленной БД МРВ очень долго не может восстановить связь.

Сообщения / Posts 15201 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
arkos
Forum Haunter / Завсегдатай форума
Участник № / Member № 6144


Icon 1 отправлено / posted      Профиль для / Profile for arkos           Редактировать/удалить сообщение / Edit/Delete Post 
Пробовали реализовать Ваше предложение на 5-ти CALL.SQLQuery. Работает. Затем то же самое делаем в нашем проекте, в котором 1500 CALL.SQLQuery. Не работает, то есть не восстанавливается связь с БД.
Возник вопрос: если хотя бы в одном из каналов CALL.SQLQuery не стоит флаг 50 атрибута,будут ли работать все остальные. Как это проконтролировать?

Сообщения / Posts 115 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
AdAstra Technical Support
Moderator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for AdAstra Technical Support           Редактировать/удалить сообщение / Edit/Delete Post 
Какую задачу решает узел, в котором 1500 CALL.SQLQuery? Для чего используется БД?
В какой последовательности и по какому алгоритму реализуются SQL-запросы?
Как реализует очередь SQL-запросов используемый ODBC-драйвер?
Как Вы моделируете "кратковременную потерю связи"?
Как скоро реагирует на разрыв связи сетевая компонента на ПК с БД?

Эффективность использования описанного механизма ускорения восстановления связи существенно зависит от ответов на эти вопросы.

На прерывание сессии требуется существенное время и фактически адекватная реакция удаленной БД и ее ПК.
Если адекватной реакции не будет, то для восстановления связи потребуется значительное время, зависящее от времени разрыва сессии со стороны БД.

Указанный выше ключ
DEBUGON=42000
позволит проконтролировать (см.выше) процедуры разрыва и восстановления соединения с БД.

Чтобы процесс выработки рекомендаций был более продуктивным, предлагаю Вам с более ясным и полным описанием задачи обратиться непосредственно в службу техподдержки.

Сообщения / Posts 15201 | Из / From: Russia  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

Послать новую тему / Post New Topic  
Тема закрыта / Topic Closed  Тема закрыта / Topic Closed
Открыть тему / Open Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us

Rambler's Top100 Rambler's Top100



Powered by Infopop Corporation
UBB.classic™ 6.7.2