[Cascavel-pm] Gerenciando conexoes

Luis Motta Campos luismottacampos em yahoo.co.uk
Terça Janeiro 23 00:38:37 PST 2007


On Jan 23, 2007, at 2:07 AM, Lorn wrote:

> Bom, tenho uma dica
> Qual versão do apache é a sua?
> Se a versão é acima de 2.x e foi você que compilou sugiro que dê  
> uma pesquisada sobre os MPM disponiveis
>  --with-mpm=MPM          Choose the process model for Apache to use.
>                           MPM={beos|worker|prefork|mpmt_os2| 
> perchild|leader|threadpool}
> Com certeza esse seu erro é na aplicacão mais usando e configurando  
> o MPM você pode evitar filhos orfãos ( até que enfim alguem pensou  
> nas criancinhas... )

   Cuidado com isso.

   Dependendo de como a aplicação foi escrita, isso pode sair pela  
culatra.
   O Apache normalmente faz a coisa certa quando ele acredita que o  
processo que ele está gerindo (CGI, ou seja lá o que for) terminou, e  
que os recursos que ele usou já foram liberados.

   Quando, por qualquer motivo, isso não é verdade, e o Apache não  
tem como descobrir sozinho (especialmente em se tratando de conexões  
com bases de dados mal-comportadas como o Oracle), então ele  
"respeita" o processo, aguardando que ele passe para o conhecido  
status de "OK, agora eu terminei" antes de tentar destruir o processo- 
filho e executar wait() nele.

   Claro, se uma besta cúbica deixar a conexão com a base de dados  
aberta e terminar o programa, sob certas condições isso vai resultar  
no apache não sabendo o que fazer com o processo, que vai ser  
encostado, simplesmente, até que ele mude de estado e possa ser  
corretamente reclamado pelo wait().

   O que acontece mais normalmente é que o Oracle termina conexões de  
base de dados que ficam inativas muito tempo (mas isso nunca foi  
default), e pode eventualmente "chutar" uma conexão com a base de  
dados que não serve mais um processo ativo. Isso basta normalmente  
para permitir ao Apache executar wait() e reclamar os recursos do  
"processo filho pródigo".

   Desta forma, eu recomendo que a aproximação de "bater nos  
prestadores de serviço" para obter software decente ou o dinheiro de  
volta como a mais viável...

   Putamplexos!
--
Luis Motta Campos is software engineer,
perl fanatic evangelist, and amateur {cook, photographer}




Mais detalhes sobre a lista de discussão Cascavel-pm