
![]() |
Здравствуйте Гость ( Вход | Регистрация ) |
|
|
|
![]() ![]() ![]() |
![]() |
|||
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
Уважаемые знатоки. Решил ретранслировать вопрос с чата. Бывало ли в вашей практике, чтоб во время загрузки страницы где-нибудь на середине отваливалось соединение с БД, ну т.е. первые 1-2 запроса нормальные, а потом раз и отвалилось, несмотря что между ними доли секунды обычно? Понимаю, что нормальный класс соединения попытается перподключится, но все же, было хоть раз такое зафиксировано? Взять классический синглтон: class DBAccess{ Какова вероятность возникновения этого события???
Ну, конечно за исключение самого первого запуска. Не могу сообразить объект создался идут запросы и вдруг он стал NULL. Какая причина и как часто такое может быть? Даже при большой загрузке сайта...просто кажется, что если уж объекты стали пропадать, то дело уже не до переподключений, вообще Ж**А всему проекту. Нет? :) -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
||
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 5790 Пользователь №: 22814 На форуме: Карма: 264 ![]() |
Такое условие не сработает. На моей практике подобного не было, но если очень, но иногда, в скриптах, которые работают как демоны, я использую mysqli_ping() - проверяет соединение с сервером и выполняет реконнект если нужно.
-------------------- |
![]() |
۩
Дата
|
||||
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
linker
Спасибо!
Я так понял в настройках должна быть включено, чтоб помнить параметры подключения. -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
||||
![]() |
|
![]() ![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 5790 Пользователь №: 22814 На форуме: Карма: 264 ![]() |
ABC
Он и так помнит, просто если эта настройка включена, то автоматом переподключается. -------------------- |
![]() |
۩
Дата
|
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
Спасибо.
-------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
Я работал с mysql, там отрубалось через Х времени из-за какой-то там настройки. То есть если Х времени с БД не работали (или Х времени после запуска), то она отрубается.
Я в итоге сделал реконнект в самой функции запроса. Но это было только на одном скрипте и на одном сервере и очень давно, поэтому я толком написал костыль и забил на это дело. О подробностях не вспомню, я был слишком юн тогда) -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
۩
Дата
|
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
inpost
Ну здесь же после каждого запуска скрипта создается объект т.е. переподключение к БД происходит так ведь? Даже обычно так и есть наверное у большинства. -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
ABC
Я тебя не понял. -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
۩
Дата
|
||
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
Я тоже не могу понять, ты имеешь ввиду постоянное соединение с БД? Без quit, например, если префикс "p" поставить: 'p:localhost'? -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
||
![]() |
|
![]() ![]() Помагите Здесь живу!!! ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 23010 Пользователь №: 20039 На форуме: Карма: 623 ![]() |
ABC
Я про обычное подключение говорил. А ты про постоянное? -------------------- Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum). |
![]() |
۩
Дата
|
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
inpost
Тоже нет. ![]() Но ведь запуск 1 страницы: Connect query1 query2 ... queryN Quit Запуск 2 страницы: Connect query1 query2 ... queryN Quit т.е. переподключение к БД происходит так ведь? -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
![]() |
|||
![]() Здесь живет ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Форумчанин ![]() Сообщений: 6460 Пользователь №: 35718 На форуме: Карма: 208 ![]() |
да это для вас это страницы 1 и 2, а для сервера все как "день сурка", апачу все равно какая у вас там страница ![]() -------------------- |
||
![]() |
۩
Дата
|
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
Valick
Спасибо. -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
![]() |
|
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Профиль Группа: Эксперт ![]() Сообщений: 12174 Пользователь №: 23195 На форуме: Карма: 441 Трезвый : 15 лет, 6 месяцев, 27 дней ![]() |
ABC
Если коннект отвалится, то в self::$_dbinstance все равно будет объект, так что вот этот блок: if (is_null(self::$_dbinstance)){ будет выполнен только при первом вызове, т.е. это чисто реализация синглтона и к коннекту отношения не имеет. -------------------- |
![]() |
۩
Дата
|
![]() ![]() TERRAFORMING ENGINEER ![]() ![]() ![]() ![]() ![]() ![]() Профиль Журнал Группа: ★ЛжеЭксперт★ ![]() Сообщений: 3900 Пользователь №: 21196 На форуме: Карма: 88 ![]() |
Invis1ble
Вот поэтому я и не понимаю, какого этот синглтон весит на каждом сайте, как образец, на хабра несколько раз встречал такой же тип, только слегка другие варианты. Почему не сделать обычный статический класс с mysqli тем более сам mysqli защен от клонирования, хотя я вообще например, слабо понимаю, как можно изменить подключение БД извне. В смысле я понимаю конечно, как, но тогда весь сайт уже во власти неприятия какой весь смысл этих танцев с бубном? Такое чувство, что его однажды написали для какой нибудь MySQL 4 под php 4 и с тех пор он качует по сайтам с разными дополнениями. Раньше в нем были методы __clone и __wakeup сейчас убрали....кто-то массив прикручивает, кто-то константы в настройке, кто еще какие обертки для запросов, но один х*р, везде эта безсмысленная строчка с нулевым объектом, которая проверяется при каждом запросе в БД, когда она должна быть просто инициатором запуска коннекта в каком-то другом инициализирующем методе. -------------------- Не тот велик, кто не падал, а тот кто падал и поднимался.
|
![]() |
![]() ![]() ![]() |