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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Ildar Gabdulline                     2:5020/400     18 Sep 2002  23:59:48
 To : Andrey Sapozhnikov
 Subject : Re: persistent DBI connections
 -------------------------------------------------------------------------------- 
 
 Andrey Sapozhnikov <sapa@icb.chel.su> wrote in message
 news:3D85EBAF.40500@icb.chel.su...
 ...
 
 > Все это легко реализовавалось БЫ, если БЫ не одно маленькое HО:
 >
 > perldoc DBI:
 > ...
 >
 >             Note that some databases, including Oracle, don't sup-
 >             port passing a database connection across a fork.
 > ...
 >
 > насколько я понимаю, это ограничение Ораклового клиента и соединение
 > открытое в одном процессе не может быть передано в другой. Если даже
 > соединение и будет передано в дочерний процесс и отработает как
 > положено, то не факт, что оно отработает во второй раз. В процессе
 > работы с базой, в дочернем процессе меняются некоторые данные в
 > структурах Ораклового клиента, и эти изменения никак не отобразятся в
 > аналогичных структурах в родительском процессе. В итоге - родительское
 > соединение становится нежизнеспособным.
 
 Тут есть выход, чтобы каким-то образом (пока не знаю каким) 'возвращать'
 данные соединения к DB обратно в родительский процесс.
 ...
 
 > 1. Подумал бы над возможностью multithread реализации в рамках
 > одного процесса (perl + ithreads) и потестировал совместим ли
 > Оракловый клиент с этим делом.
 
 По perl and threads есть отдельный вопрос - кто-нибудь сумел заставить их
 работать надежно.
 Hедавно скачал 5.8.0 release - декларируется, что threads уже стабильные,
 все откомпилировал как надо, HО - к примеру, dbiproxy падает,
 если ставить режим mode=threads (правда машина SMP).
 
 >
 > 2. При неудаче, откатился бы к pre-forked версии. То есть стартует
 > процесс, ветвится на 2000 идентичных, в каждом открывается одно
 > соединение с базой и управляющий сокет на прослушивание. Свободный
 > от работы клиент получает по этому сокету команду на вызов скрипта
 > и вызывает его HЕ порождая дочернего процесса. Вероятно скрипты в данном
 > случае должны быть похожи на mod_perl Apache::Registry скрипты.
 > По окончании работы скрипта продолжаем слушать управляющий сокет.
 > Система до боли напоминает Apache+mod_perl и требует изрядных ресурсов
 > памяти, впрочем в пределе и ваша модель требовала бы тех же
 > двух тысяч перловых процессов в памяти.
 
 Придется, видимо, на самом деле изучить mod_perl (это потребует некоторых)
 переделок сервера, который все это дело запускает (он имеет
 proprietary corba interface и все остальные лезут к скриптам через него).
 
 >
 > Андрей
 >
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 persistent DBI connections   Ildar Gabdulline   15 Sep 2002 23:44:41 
 Re: persistent DBI connections   Andrey Sapozhnikov   16 Sep 2002 18:39:56 
 Re: persistent DBI connections   Ildar Gabdulline   18 Sep 2002 23:59:48 
 Re: persistent DBI connections   Andrey Sapozhnikov   19 Sep 2002 01:49:36 
Архивное /ru.perl/657770f00c0e.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional