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


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Andrey Sapozhnikov                   2:5020/400     12 Nov 2002  00:13:14
 To : Artem Chuprina
 Subject : Re: DBD::Oracle + fork
 -------------------------------------------------------------------------------- 
 
 Artem Chuprina wrote:
 
 > Здравствуй, Sergey Zhuravlev.
 > 
 > SZ> Столкнулся со следующей проблемой:
 > SZ> Скрипт конектится к Oracle, выбирает из него некие данные
 > SZ> и расфоркивается на несколько процесов. Когда первый из
 > SZ> дочерних процесов умирает, конект в родительском процесе
 > SZ> отваливается.
 > SZ> Почему это происходит мне понятно, вопрос в том, как это
 > SZ> можно обойти.
 > SZ> Кто-нибудь с такой ситуацией сталкивался?
 > 
 > Hе держать preforked коннекта? Еще можно попробовать сразу после форка
 > позакрывать все хендлы (до того, как сдохнет database handle). Как - см. в
 > Proc::Daemon. При этом заодно прихватится хендл к ораклу, а поскольку есть еще
 > открытые, то сам оракл по идее ничего заметить не должен.
 
 Соединение с Ораклом может и не иметь хэндла (например протокол BEQ
 работающий через SysV IPC), и вообще, есть же документированный путь,
 perldoc DBI:
 
   "InactiveDestroy" (boolean)
      This attribute can be used to disable the database engine related
      effect of DESTROYing a handle (which would normally close a pre-
      pared statement or disconnect from the database etc).
 
      For a database handle, this attribute does not disable an explicit
      call to the disconnect method, only the implicit call from DESTROY.
 
      The default value, false, means that a handle will be automatically
      destroyed when it passes out of scope.  A true value disables auto-
      matic destruction. (Think of the name as meaning 'inactive the
      DESTROY method'.)
 
      This attribute is specifically designed for use in Unix applica-
      tions that "fork" child processes. Either the parent or the child
      process, but not both, should set "InactiveDestroy" on all their
      shared handles.  Note that some databases, including Oracle, don't
      support passing a database connection across a fork.
 
 Андрей
 --- ifmail v.2.15dev5
  * Origin: Demos online service (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 DBD::Oracle + fork   Sergey Zhuravlev   11 Nov 2002 21:45:17 
 Re: DBD::Oracle + fork   Artem Chuprina   11 Nov 2002 22:13:39 
 Re: DBD::Oracle + fork   Sergey Zhuravlev   11 Nov 2002 23:06:59 
 Re: DBD::Oracle + fork   Andrey Sapozhnikov   12 Nov 2002 00:13:14 
 Re: DBD::Oracle + fork   Sergey Zhuravlev   12 Nov 2002 13:55:37 
Архивное /ru.perl/6577ecb0f8b1.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional