Гость
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / reconnect / 3 сообщений из 3, страница 1 из 1
23.06.2019, 20:42
    #39829643
Swv
Swv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
reconnect
Здравствуйте.


использую PDO firebird

есть класс. в нем функции соединения, старта транзакции и тд.

участилась такая ерунда. моргает свет. так уж получилось , что на все бесперебойников не хватает.
Но сервер где сайт и сервер где база остаются живы.
Но рверся соединение с базой. Решил по простому. стартую транзакцию. если какое то исключение перехвачено, то $dbh = NULL , далее запускаю еще раз функцию connect. и после этого еще раз старт транзакции.

внутри примерно так
Код: php
1.
$dbh = new PDO('firebird:dbname=127.0.0.1:D:\bases\base.fdb;charset=UTF8', 'SYSDBA', 'masterkey',array(PDO::ATTR_PERSISTENT => true))



естественно все обернуто в try\catch. ну и если вдруг соединение не прошло - обругать должно.

А в данном случае не ругается ) те выполняется функция соединения без каких либо ошибок. в мониторинге firebird тоже тишина. никакого намека на создание соединения. и никакого исключения

пробовал воспроизвести. стартую сервер. запускаю простенький скрипт. он отрабатывает. срубаю соединение с базой. эдакая эмуляция потери соединения. Запускаю еще раз тот же скрипт. по ходу пьесы запускается транзакция, обламывается. вызывается еще раз функция соединения с базой. потом запускается еще раз транзакция и обламывается с той же ошибкой - error reading.....

Собственно вопрос. почему не создается еще раз PDO соединение?
...
Рейтинг: 0 / 0
24.06.2019, 10:14
    #39829743
Дегтярев Евгений
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
reconnect
1. вряд ли кто ответит, фб не сильно популярен в сочетании с пхп
2. pdo_firebird никогда не отличался стабильностью

зы
плюс надо понимать что персистент дб-соединения в пхп работают не совсем так, как многие думают
...
Рейтинг: 0 / 0
24.06.2019, 14:01
    #39829853
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
reconnect
SwvСобственно вопрос. почему не создается еще раз PDO соединение?Потому что ATTR_PERSISTENT говорит - не создавать новое соединение, а использовать старое. А в драйвере видимо нет проверки, что соединение оборвалось, драйвер продолжает использовать это соединение несмотря ни на какие ошибки.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / reconnect / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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