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