|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 19 Sep 2002 01:49:36 To : Ildar Gabdulline Subject : Re: persistent DBI connections -------------------------------------------------------------------------------- Ildar Gabdulline wrote: >> 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). А какие именно треды были собраны? Главное сдуру не собрать 5005threads. К тому же dbiproxy в силу своей специфики еще не показатель. Я бы не стал пытаться вгрузить несколько DBI::Oracle в дочерние треды (как это делает DBI::ProxyServer), а вгрузил бы один единственный в родительский. Дочерние бы только просили соединение у родительского на попользоваться... Андрей --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/528418eec5e8.html, оценка из 5, голосов 10
|