Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: mod_perl+MySQL=???   Eugene Grosbein   10 Jan 2002 12:46:40 
Архивное /ru.cgi.perl/2609303becacd.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional