Quelqu'un peut-il me dire pourquoi j'ai des erreurs en ouvrant le fichier dans le code ci-dessous? Les erreurs commencent à la moitié de la 9ème itération de 25 threads, et sont des erreurs "Trop de fichiers ouverts". L'erreur se produit uniquement lors de l'exécution dans les threads et uniquement lorsque DBI connect/disconnect est utilisé. Cela ne devrait pas affecter le nombre de fichiers ouverts du tout devrait-il? Je suis assez nouveau à Perl donc je ne sais pas si j'ai fait quelque chose de bizarre. C'est sur Perl 5.8.8. sur Solaris 10.Perl - Trop d'erreur de fichiers lors de l'utilisation de DBD Oracle
use threads();
use DBI;
use DBD::Oracle;
my $thrds=25;
my $iter=10;
my @threads;
for (my $j=0; $j<$iter; $j++) {
&start($j);
}
sub start {
my $k=$_[0];
for (my $i=0; $i<$thrds; $i++) {
$threads[$i] = threads->new(\&RunThread,$k, $i);
}
for (my $i=0; $i<$thrds; $i++) { $threads[$i]->join; }
}
sub RunThread {
my $dbh = DBI->connect("dbi:Oracle:lnrmsd9.world", "rms_reader", "rms_reader") or die "failed connect";
my ($x, $y)[email protected]_;
open (my $fh, ">/tmp/da") or die "failed $! at iter $x thread $y";
close ($fh);
$dbh->disconnect;
}
La petite icône binaire de l'éditeur sert à coller du code. (Voir le guide d'aide du balisage.) – Ether
J'ai utilisé cela et cela n'a pas fonctionné pour une raison quelconque. Quoi qu'il en soit, OK maintenant, merci –