Russian Qt Forum
Ноябрь 24, 2024, 02:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Проверка включения сервера  (Прочитано 12039 раз)
BRE
Гость
« Ответ #15 : Октябрь 26, 2009, 23:41 »

Цитировать
По хорошему нужно посмотреть протокол обмена сервера и клиента mysql.

В mysqladmin есть режим ping. Посмотри как это делается там.
Возможно в клиентской библиотеке mysql есть необходимый функционал.
Записан
NicK
Гость
« Ответ #16 : Октябрь 27, 2009, 00:19 »

Цитировать
В mysqladmin есть режим ping. Посмотри как это делается там.
Возможно в клиентской библиотеке mysql есть необходимый функционал.
Спасибо за подсказку.
Нашел вот что: http://knowledgehub.zeus.com/articles/2006/02/27/custom_monitors_for_mysql_in_c
Попробую копать в эту сторону Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #17 : Октябрь 27, 2009, 01:52 »

NicK, а ты единственный кто к базе подключается. Может кто-то её не рационально использует и она действительно занята?
MySQL вроде использует блокировки для разруливания доступа
Записан

Юра.
NicK
Гость
« Ответ #18 : Октябрь 27, 2009, 10:14 »

NicK, а ты единственный кто к базе подключается. Может кто-то её не рационально использует и она действительно занята?
MySQL вроде использует блокировки для разруливания доступа

Нет. я не единственный. На самом сервере работает сервис, который постоянно дергает разные данные с базы. но там обыкновенный SELECT выполняется и все.

Блокируется именно мой компьютер, из-за того, что постоянные connect'ы и disconnect'ы QTcpSocket'а воспринимаются как connection errors (kmysqladmin показал ~300 ошибок соединения с моего хоста  за ~15 минут). Если же тупо соединяться к базе через db.open(без проверки MySQL порта через сокет), то никаких ошибок не возникает.

В общем, я вижу сейчас два варианта для проверки сервера: или использовать просто пинг(но так не проверить наличие самого mysql сервера), или реализовывать пинг средствами mysql, как описано по ссылке, приведенной мной выше.
Записан
Примерный ученик
Бывалый
*****
Offline Offline

Сообщений: 450


И это не всегда помогает


Просмотр профиля
« Ответ #19 : Октябрь 27, 2009, 20:07 »

Попробуй
уменьшить время ожидания.

Я заложился, что если за 5 сек сервер не отозвался, то он или выключен или
сильно загружен...
Код:
loadPSQL->setConnectOptions("connect_timeout=5");
loadPSQL->open();

С моей точки зрения такое решение наиболее корректное
« Последнее редактирование: Октябрь 27, 2009, 20:11 от Примерный ученик » Записан

Как мало времени и как много нужно узнать
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.048 секунд. Запросов: 22.