Devo desconectar () se estou usando o connect_cached () do Apache :: DBI?

Meu aplicativo de intranet baseado em mod_perl2 usaDBI->connect_cached() que é supostamente substituído porApache::DBIA versão do mesmo. Ele normalmente funcionava muito bem, mas recentemente começamos a ter um problema em nosso servidor de teste - que tinha apenas dois usuários conectados - pelo qual nosso aplicativo às vezes, mas nem sempre, morria ao tentar recarregar uma página com 'FATAL: desculpe, muitos clientes já estão se conectando ao nosso backend 9.0 do postgres, apesar de todos serem<IDLE> se eu olhar para as estatísticas no pgadmin3.

O backend é separado dos nossos backends de desenvolvimento e produção, mas todos eles são configurados commax_connections = 100. Da mesma forma, os serviços do httpd são todos separados, mas configurados com

StartServers       8
MinSpareServers    5
MaxSpareServers   20
ServerLimit      99
MaxClients       99
MaxRequestsPerChild  4000
....
PerlModule Apache::DBI

Eu estava com a impressão de que eu não deveria ligardisconnect() no meu banco de dados lida se eu queria que eles realmente se beneficiem do cache. Eu estava errado sobre isso? Se não, acho que vou perguntar sobre o erro acima separadamente. Só queria ter certeza de que não era essa configuração ...

Apache :: docs do DBI dizer:

Ao carregar o módulo DBI (não confunda isso com o módulo Apache :: DBI) ele verifica se a variável de ambiente 'MOD_PERL' foi configurada e se o módulo Apache :: DBI foi carregado. Nesse caso, todas as solicitações de conexão serão encaminhadas para o módulo Apache :: DBI. .... Não há necessidade de remover as instruções de desconexão do seu código. Eles não farão nada porque o módulo Apache :: DBI sobrecarrega o método de desconexão.

Se você está desenvolvendo um novo código que é estritamente para uso em mod_perl, você pode escolher usar DBI-> connect_cached (), mas considere adicionar uma reversão automática após cada requisição, como descrito acima.

Então eu acho que para o meu aplicativo mod_perl2-only, eu não preciso do Apache :: DBI porque os desenvolvedores do Apache :: DBI recomendam usar o DBI-> connect_cached. E eu não preciso de instruções de desconexão.

Mas entãoDocs do DBI dizer:

Note que o comportamento de [connect_cached] difere em vários aspectos do comportamento de conexões persistentes implementadas pelo Apache :: DBI. No entanto, se o Apache :: DBI estiver carregado, o método connect_cached irá usá-lo.

Isso faz parecer que o Apache :: DBI realmente afetará connect_cached, em vez de obter o comportamento DBI-> connect_cached quando eu chamo isso, eu vou ter o comportamento Apache :: DBI-> connect. E os documentos do Apache :: DBI recomendam contra isso.

ATUALIZAÇÃO: defini os primeiros 5 parâmetros na configuração acima como 1 e meu aplicativo ainda está usando cada vez mais conexões ao acessar suas páginas. Isso eu não entendo nada - deve ter apenas um processo, e esse processo deve estar reutilizando sua conexão.

questionAnswers(1)

yourAnswerToTheQuestion