Problème d'insertion de données Perl-dbi
Bonjour,
voila j'ai un problème de Perl. Je developpe une base de données avec son interface associées en Perl-cgi (classique).
Code:
1 2 3 4 5 6 7 8 9 10
|
#!/usr/bin/perl -w
use strict;
use Carp;
use SQLTILL; --> Librairie perso qui utilise le dbi
use CGI qw/:standard/;
use File::Basename;
use File::Copy;
use CGI::Session;
use Tie::IxHash; |
J'utilise ces librairies.
Puis je lis un fichier passé en paramètre par l'utilisateur et qui contient les données à integrer
mon algo se presente à peu pret de cette manière :
Code:
1 2 3 4 5 6 7 8
|
Lecture du fichier
Pour chaque ligne du fichier {
preparation de la requete
integration des données
si erreur dans la requete alors rollback
sinon commit
} |
Lorsque je fais tourner cette algo en perl ma page plante. En gros elle reste figée sur la page de saisie du fichier de données puis après avoir mouliner pendant quelques minutes j'ai une page blanche d'erreur de server.
A noter que si je me contente d'afficher les requètes que je veut faire et que je les copie/colle dans sqlplus ça fonctionne très bien.
A noter aussi que si je rajoute un compteur de manière à ne faire que 10 ou 15 requetes ça ne plante pas (Dans mon fichier il y a 4500 données (et donc 4500 requètes a faire)).
Re: Problème d'insertion de données Perl-dbi
Citation:
Envoyé par Tygrou
Lorsque je fais tourner cette algo en perl ma page plante. En gros elle reste figée sur la page de saisie du fichier de données puis après avoir mouliner pendant quelques minutes j'ai une page blanche d'erreur de server.
A noter que si je me contente d'afficher les requètes que je veut faire et que je les copie/colle dans sqlplus ça fonctionne très bien.
A noter aussi que si je rajoute un compteur de manière à ne faire que 10 ou 15 requetes ça ne plante pas (Dans mon fichier il y a 4500 données (et donc 4500 requètes a faire)).
Je ne pense pas que ton script Perl plante (encore qu'il pourrait y avoir un problème de mémoire si tu stockes tout tes résultats en mémoire par exemple), mais bien sûr il y a toujours un timeout pour les requêtes faites par un browser... Donc si tu n'envoies des données qu'après avoir effectué les 4500 (!) requêtes, il y a un fort risque pour que ton browser n'attende pas. Tu devrais peut-être essayer d'envoyer un peu d'info, au moins le header et puis une ligne d'information toutes les 40 requêtes par exemple.
--
Jedaï