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


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)
 
 

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

 Тема:    Автор:    Дата:  
 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/528418eec5e8.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional