2009-05-17 8 views
0

J'ai fait les programmes suivants en Perl avant:Comment puis-je partager une connexion à une base de données à travers un processus forké en Perl?

my $db = DBconnection with DB2 

if ($pid = fork()) { 
    #parent 
} else { 
    #child 
    $db->execute("SELECT ****"); 
    exit; 
} 

wait(); 
$db->execute("SELECT ****"); 

Je pensais qu'il attendait la fin du processus de l'enfant d'avoir voulu le faire et fonctionnerait pour DB par un pro-processus.

En outre, DB n'est pas connecté au contenu de l'erreur.

Qu'est-ce qui ne va pas?

Répondre

5

Il y a beaucoup de choses que vous devez faire pour permettre à un processus fils d'utiliser le handle DBI de son parent. Voir cet article sur Perl Moines sur DBI, fork, and clone.

1

Essayez d'inclure cette ligne de code dans votre bloc enfant:

$db->{InactiveDestroy} = 1;