IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

DB2 Discussion :

Problème d'insertion massive de données


Sujet :

DB2

  1. #1
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Problème d'insertion massive de données
    Bonjour,

    je fais une insertion massive de données dans trois tables par le biais d'une boucle while

    Le problème, c'est que chaque fois entre 500 et 2000, la boucle plante, avec différentes erreurs :

    java.sql.SQLException: Resultset is closed
    java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

    ou des fois un truc avec getResultset...

    Vu que la boucle fonctionne très bien au début, je me demande d'ou proviennent ces erreurs, surtout que je fonctionne en try/catch, et que je suis sur que ces erreurs ne sont pas déclenchées par ce biais.

    Y a pas quelque chose à faire avec les resultset au niveau mémoire? les vider? augmenter le heap?

    Ou alors ca vient pas du tout de la? Quelqu'un a une idée?

    Merci

  2. #2
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Ahl lala
    J'ai l'impression (je suis pas sur) que ca vient d'une requete SELECT effectuée bon nombre de fois, sur une table vide, donc le resultset est vide.
    Ca craint pas normalement non?

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Il se pourrait bien que tu atteignes la valeur du timeout assigné pour une requête à la base de données. Du coup, tu planterais. Puisque tu fais des insertions massives, regarde si possible si le moteur SQL ne créerait pas un index temporaire à chaque itération, ce qui pourrait augmenter exponentiellement la durée des requêtes.

  4. #4
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut peut etre
    donc si je te suis, en faisant un setQueryTimeout(un gros chiffre en ms), sur mon statement, ca devrait résoudre le problème;

    Mais ca ne marche pas.

    Comment savoir si ce moteur crée un index? et comment le virer?

    merci

  5. #5
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut ceci dit
    je remarque qu'en ajustant le timeout, la boucle va plus loin, donc ta surement raison, mais je trouve pas grand chose sur le sujet sur la toile.

    Help please!

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Par défaut
    Tu es sur quelle version de DB2 ?

  7. #7
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Version
    9.5.0.808

  8. #8
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut processus
    J'ai aussi remarqué que le processus db2syscs monte jusqu'à 950mo, et à chaque fois quil dépasse cette limite, ca plante

  9. #9
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Rect
    Non en fait, il monte encore, + de 1Go, c pas très normal ca quand même, un soft de cette trempe n'est pas mieux fait que ca...

  10. #10
    Membre éclairé Avatar de donnadieujulien
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    433
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 433
    Par défaut Après des heures de prises de tête
    Bon, j'ai failli escamper le pc par la fenetre, mais j'ai trouvé :

    ca venait de ma class watch_connection, qui sert à verifier la connectivité en envoyant une requete neutre sur une table test, syncronisé sur un timer. Et comme j'ai pas fait de thread séparé, et que j'utilise les memes resultset, ca me fesait planter!!!
    tout ca pour ca...
    merci pour votre aide
    @ bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème d'insertion d'une données dans une table
    Par sab_info dans le forum Développement
    Réponses: 2
    Dernier message: 06/02/2013, 15h32
  2. Réponses: 14
    Dernier message: 27/12/2009, 15h00
  3. Problème d'insertion base de donnée Access
    Par hh4life dans le forum Windows Forms
    Réponses: 2
    Dernier message: 28/08/2007, 19h26
  4. [sql server][c#] problème d'insertion avec deux données identiques
    Par skystef dans le forum Accès aux données
    Réponses: 2
    Dernier message: 22/12/2006, 16h28
  5. [MySQL] problème d'insertion d'une donnée nulle
    Par unmulot dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/06/2006, 16h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo