powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / FoxPro + MySQL (удаленная БД) - проверка связи
13 сообщений из 13, страница 1 из 1
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478000
IVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IVT
Гость
Использую данную связку. Причем БД расположена у хостера.

Коннект посредством SQLSTRINGCONNECT(...) устанавливается без проблем. Но есть одно "но". Через 30 секунд, если не было запросов к серверу, связь с БД теряется (у хостера так настроено).

Мое решение: реконнект по таймауту через 28 секунд (проверяется перед очередным запросом лимит времени вышел или нет)
Недостатки: если инет сбойнул (т.е. до лимита в 28 сек связь с БД теряется) - проге становится плохо.

Вопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет?
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478039
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет?
Не держать его в таком случае постоянно открытым и закрывать сразу после получения результатов запроса.
Проверить наличие коннекта можно только попытавшись получить что-нибудь через это соединение, но при обрыве со стороны сервера это уже будет поздно.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478048
IVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IVT
Гость
Sergey Sizov.
Не держать его в таком случае постоянно открытым и закрывать сразу после получения результатов запроса.

Для меня это неподходящий вариант, т.к. сам процесс соединения занимает где-то в среднем секунд 5-8.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478074
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нравиться, не нравиться - спи моя красавица. (с) не знаю чей.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478082
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IVTМое решение: реконнект по таймауту через 28 секунд (проверяется перед очередным запросом лимит времени вышел или нет)
Недостатки: если инет сбойнул (т.е. до лимита в 28 сек связь с БД теряется) - проге становится плохо.

Вопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет?

Да, можно, при обрыве соединения получим ошибку 1466, соответственно её надо подавить в обработчике ошибок и переконнектится.
Собственно, при такой архитектуре нет необходимости по таймеру восстанавливать соединение, соединение будет восстановлено при выполнении запроса.

Либо если используется 9-ка "зарядить" SQLIDLEDISCONNECT, вот она оставляет хендл текущего соединеия.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478111
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет?

Да, можно, при обрыве соединения получим ошибку 1466,
При обрыве ли? В момент обрыва? Или таки при попытке выполнить запрос на уже разорванном соединении?
соответственно её надо подавить в обработчике ошибок и переконнектится.
Собственно, при такой архитектуре нет необходимости по таймеру восстанавливать соединение, соединение будет восстановлено при выполнении запроса.

Либо если используется 9-ка "зарядить" SQLIDLEDISCONNECT, вот она оставляет хендл текущего соединеия.
Ну вот это да, можно порекомендовать. Но это все равно разрыв с последующим, правда ускоренным, восстановлением.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478145
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov. PaulWist IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет?

Да, можно, при обрыве соединения получим ошибку 1466,
При обрыве ли? В момент обрыва? Или таки при попытке выполнить запрос на уже разорванном соединении?


Конечно при попытке либо тестирования разорванного соединения, либо при попытке выполненияя на разорванном соединении, а вот что такое при обрыве и в момент обрыва я не понимаю, соединение либо есть, либо нет.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478171
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWistКонечно при попытке либо тестирования разорванного соединения, либо при попытке выполненияя на разорванном соединении, а вот что такое при обрыве и в момент обрыва я не понимаю, соединение либо есть, либо нет.
То есть каким-то другим способом, кроме попытки получить что-то через соединение, таки нет.
А вот "при обрыве" и "в момент обрыва" означают, что существует некое событие, срабатывающее при указанных действиях. Таких событий нет. И проверить наличие коннектма можно только попытавшись что-то передать-получить по коннекту. И так далее по кругу. Способ один не зависимо от формы, названий и обвязок вокруг него. Не так ли?
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35478229
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergey Sizov.
То есть каким-то другим способом, кроме попытки получить что-то через соединение, таки нет.


Судя по всему да, достаточно посмотреть в профайлере как агент проверяет живость сервера, он просто тупо посылает запрос на сервер.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35480689
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри переменную в mySQL
там есть переменная которая указывает серверу через какое время после простоя оборвать коненкт
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35481031
Jura.K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
переменная
interactive_timeout
сделай эту переменную больше.
Она указывает количество секунд, в течении которых сервер ожидает активности на неактивном соединении, прежде чем закрыть его.
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35481381
IVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IVT
Гость
Jura.Kпеременная
interactive_timeout
сделай эту переменную больше.


Спасибо, сейчас попробую разобраться
Точнее это будет переменная wait_timeout

Пока не могу разобраться, но видимо правов у меня для изменения данной системной переменной не хватит 8(
...
Рейтинг: 0 / 0
FoxPro + MySQL (удаленная БД) - проверка связи
    #35481448
IVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
IVT
Гость
Ура, получилось. На уровне сессии можно изменить wait_timeout на значение отличное от предустановленных 30 секунд.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / FoxPro + MySQL (удаленная БД) - проверка связи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]