Como posso compartilhar uma conexão de banco de dados em um processo bifurcada em Perl?
Pergunta
Eu fiz os seguintes programas em Perl antes:
my $db = DBconnection with DB2
if ($pid = fork()) {
#parent
} else {
#child
$db->execute("SELECT ****");
exit;
}
wait();
$db->execute("SELECT ****");
Eu pensei que ele esperou o final do processo de criança ter queria fazê-lo e iria operá-lo para o DB por um pró-processo.
Além disso, a DB não está ligado ao conteúdo do erro.
O que há de errado?
Solução
Há um monte de coisas que você deve fazer para permitir que um processo filho a usar alça DBI do seu pai. Consulte este artigo sobre Perl Monks sobre DBI, garfo e clone .
Outras dicas
Tente incluindo esta linha de código em seu bloco de criança:
$db->{InactiveDestroy} = 1;
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow