| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > как сделать автоматический re-connect к MySQL? |
| Автор: ochnev 13.4.2007, 16:47 | ||
| Есть скрипт, работающий в режиме FastCGI, и в нём нужно поддерживать постоянный коннект к MySQL в течение очень долгого времени. Естественно, коннект может отвалиться. Как правильно сделать автоматический re-connect к MySQL? Я увидел http://nginx.info/index.pl/ru/forum/fastcgi-nginx/fastcgi_programming/-fastcgi---perl-c-dbitt2 пример:
Но нигде в доках не нашёл упоминания про "mysql_auto_reconnect" (просто эту строку в доках искал). Ещё в исходниках DBD::mysql не переопределяется метод ping из DBI, который по умолчанию возвращает true. Странно. Есть какой-нибудь надёжный способ проверить, живо ли соединение с сервером MySQL? |
| Автор: Бонифаций 13.4.2007, 17:19 |
| метод пинг реализован в mysql c api, перловская DBI просто оболочка над этим апи, поэтому в реализации на перле этой функции нет необходимости. mysql_auto_reconnect: mysql_auto_reconnect This attribute determines whether DBD::mysql will automatically reconnect to mysql if the connection be lost. This feature defaults to off; however, if either the GATEWAY_INTERFACE or MOD_PERL envionment variable is set, DBD::mysql will turn mysql_auto_reconnect on. Setting mysql_auto_reconnect to on is not advised if 'lock tables' is used because if DBD::mysql reconnect to mysql all table locks will be lost. This attribute is ignored when AutoCommit is turned off, and when AutoCommit is turned off, DBD::mysql will not automatically reconnect to the server. |