DBI a fork
Antonin Kmoch
xkmoch na aisa.fi.muni.cz
Pátek Květen 4 01:31:00 MEST 2001
Dobry den, mam takoveto schema programu:
my $dbh = DBI->connect(
'dbi:mysql:database=dbnew2u;host=sneck.yahoo.de',
'tony2',
'u78b117', {'RaiseError' => 1});
..
. # cast programu "A"
..
if ($p = fork) {
.
. # otec - cast programu "B"
.
} elsif (defined $p) {
.
. # syn - cast programu "C"
.
exit; # !!!! ukoncim syna, abych nepresel do casti "D"
}
..
. # cast D
..
$dbh->disconnect;
Bohuzel tento program mi dost casto havaruje s chybovym hlasenim:
DBD::mysql::st execute failed: Lost connection to MySQL server during
query at index.cgi line 580.
DBD::mysql::st execute failed: Lost connection to MySQL server during
query at index.cgi line 580.
Myslim si, ze je to tim, ze tyto 2 procesy sdileji jeden handle
($dbh) na databazi a oba s nim pracuji (cast "C" i "D" pouzivaji
$dbh->prepare a $sth->execute) a vzajemne si mozna "rusi vnitrni
promenne". Navic kdyz konci telo "C" nebo "D" - tak se automaticky dela
$dbh->disconnect a to zrusi handle druhemu procesu.
Muzete mi to nekdo prosim potvrdit, nebo vyvratit? Ja uz bych pak
skutecne nevedel, kde jinde muze bych chyba!
Resenim by bylo vyhodit vsechny SQL dotazy mimo sekci "C" ?
Dekuji!!!!!
Antonin NEO Kmoch, xkmoch na fi.muni.cz
.projects: WWW2SMS, XBrno, Hexxagon
http://quicksms.zde.cz/
Další informace o konferenci Perl