|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Eugene Grosbein 2:5006/1 10 Jan 2002 12:46:40 To : Andrey Sapozhnikov Subject : Re: mod_perl+MySQL=??? -------------------------------------------------------------------------------- AS> Во-первых, внимательно перечитываем perldoc DBI: AS> ... AS> The "dbi_connect_method" attribute can be used to AS> specify which driver method should be called to estabЅ AS> lish the connection. The only useful values are 'conЅ AS> nect', 'connect_cached', or some specialized case like AS> 'Apache::DBI::connect' (which is automatically the AS> default when running within Apache). AS> ... AS> и делаем необходимые соединения не персистентными. Big thanks. Придется апгрейдить DBI - в 1.13 этого нету ;-) >> В логах самого MySQL ничего нету, свободных коннектов в MySQL тоже дофига. >> Самое смешное - не могу найти эту ругань в тексте модулей. AS> Во-вторых, ищем это сообщение (MySQL server has gone away) в библиотеке AS> от mysql. DBD::MySQL все-го лишь добавляет в какой строке какого AS> файла/пакета это случилось. Выглядит так, как будто кто-то по ошибке AS> закрыл соединение с sql сервером. Чаще всего такое случается если в AS> скрипте был использован fork и в дочернем процессе оказалась копия AS> объекта $dbh. Завершаясь, дочерний процесс вызвал деструктор этого AS> объекта и он не просто захлопнул сокет, но и послал командочку sql-серверу AS> на окончание сеанса. Это только предположение, но если оно верно, то AS> читаем perldoc DBI еще раз: Hикаких форков, самый обычный скрипт: connect, ( prepare, execute, finish, repeat ;), disconnect. Причем disconnect делается только внутри cleanup: #!/usr/bin/perl -w use strict; use CGI; use DBI; &main; sub main { use vars qw /$dbh/; &connect; ... &cleanup; } sub connect { # connect $dbh or die } sub cleanup { $dbh->disconnect; exit(0); } Кстати, при апгрейде DBI 1.13 до 1.20 может чего-нибудь поломаться? У меня из DBD используются mysql и ODBC. Eugene -- "Люди забыли эту истину," - сказал Лис, - "но ты не забывай" --- slrn/0.9.7.3 (FreeBSD) * Origin: Svyaz Service JSC (2:5006/1@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/2609303becacd.html, оценка из 5, голосов 10
|