|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Использую данную связку. Причем БД расположена у хостера. Коннект посредством SQLSTRINGCONNECT(...) устанавливается без проблем. Но есть одно "но". Через 30 секунд, если не было запросов к серверу, связь с БД теряется (у хостера так настроено). Мое решение: реконнект по таймауту через 28 секунд (проверяется перед очередным запросом лимит времени вышел или нет) Недостатки: если инет сбойнул (т.е. до лимита в 28 сек связь с БД теряется) - проге становится плохо. Вопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:10 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет? Не держать его в таком случае постоянно открытым и закрывать сразу после получения результатов запроса. Проверить наличие коннекта можно только попытавшись получить что-нибудь через это соединение, но при обрыве со стороны сервера это уже будет поздно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:24 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Sergey Sizov. Не держать его в таком случае постоянно открытым и закрывать сразу после получения результатов запроса. Для меня это неподходящий вариант, т.к. сам процесс соединения занимает где-то в среднем секунд 5-8. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:26 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Нравиться, не нравиться - спи моя красавица. (с) не знаю чей. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:35 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
IVTМое решение: реконнект по таймауту через 28 секунд (проверяется перед очередным запросом лимит времени вышел или нет) Недостатки: если инет сбойнул (т.е. до лимита в 28 сек связь с БД теряется) - проге становится плохо. Вопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет? Да, можно, при обрыве соединения получим ошибку 1466, соответственно её надо подавить в обработчике ошибок и переконнектится. Собственно, при такой архитектуре нет необходимости по таймеру восстанавливать соединение, соединение будет восстановлено при выполнении запроса. Либо если используется 9-ка "зарядить" SQLIDLEDISCONNECT, вот она оставляет хендл текущего соединеия. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:38 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
PaulWist IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет? Да, можно, при обрыве соединения получим ошибку 1466, При обрыве ли? В момент обрыва? Или таки при попытке выполнить запрос на уже разорванном соединении? соответственно её надо подавить в обработчике ошибок и переконнектится. Собственно, при такой архитектуре нет необходимости по таймеру восстанавливать соединение, соединение будет восстановлено при выполнении запроса. Либо если используется 9-ка "зарядить" SQLIDLEDISCONNECT, вот она оставляет хендл текущего соединеия. Ну вот это да, можно порекомендовать. Но это все равно разрыв с последующим, правда ускоренным, восстановлением. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:49 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Sergey Sizov. PaulWist IVTВопрос: Можно ли по текущему хендлу соединения проверить "живо" оно или нет? Да, можно, при обрыве соединения получим ошибку 1466, При обрыве ли? В момент обрыва? Или таки при попытке выполнить запрос на уже разорванном соединении? Конечно при попытке либо тестирования разорванного соединения, либо при попытке выполненияя на разорванном соединении, а вот что такое при обрыве и в момент обрыва я не понимаю, соединение либо есть, либо нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 11:59 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
PaulWistКонечно при попытке либо тестирования разорванного соединения, либо при попытке выполненияя на разорванном соединении, а вот что такое при обрыве и в момент обрыва я не понимаю, соединение либо есть, либо нет. То есть каким-то другим способом, кроме попытки получить что-то через соединение, таки нет. А вот "при обрыве" и "в момент обрыва" означают, что существует некое событие, срабатывающее при указанных действиях. Таких событий нет. И проверить наличие коннектма можно только попытавшись что-то передать-получить по коннекту. И так далее по кругу. Способ один не зависимо от формы, названий и обвязок вокруг него. Не так ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 12:07 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Sergey Sizov. То есть каким-то другим способом, кроме попытки получить что-то через соединение, таки нет. Судя по всему да, достаточно посмотреть в профайлере как агент проверяет живость сервера, он просто тупо посылает запрос на сервер. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.08.2008, 12:24 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
посмотри переменную в mySQL там есть переменная которая указывает серверу через какое время после простоя оборвать коненкт ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 10:24 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
переменная interactive_timeout сделай эту переменную больше. Она указывает количество секунд, в течении которых сервер ожидает активности на неактивном соединении, прежде чем закрыть его. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 12:42 |
|
FoxPro + MySQL (удаленная БД) - проверка связи
|
|||
---|---|---|---|
#18+
Jura.Kпеременная interactive_timeout сделай эту переменную больше. Спасибо, сейчас попробую разобраться Точнее это будет переменная wait_timeout Пока не могу разобраться, но видимо правов у меня для изменения данной системной переменной не хватит 8( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2008, 14:52 |
|
|
start [/forum/topic.php?fid=41&msg=35481031&tid=1587401]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 171ms |
0 / 0 |