|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/657770f00c0e.html, оценка из 5, голосов 10
|