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

JDBC Java Discussion :

Problème de mémoire


Sujet :

JDBC Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Problème de mémoire
    Bonjour,

    Je parcours chaque table de ma base de données FireBird. Ensuite je récupère l'id de chaque enregistrement de chaque table pour les insérer dans un autre table. Il y a environ 28000 enregistrements dans la base de données ( tout se fait en local ). Sachant que j'ai mis cette méthode qui est appelé par un Runnable invokeLater qui lui est appelé dans un thread.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Thread thread = new Theard(){
     
    	public void run(){
     
    		Runnable runnable = new Runnable(){
    			public void run(){		
     
    			// lancement de la méthode
     
    			}
    		}
                    EventQueue.invokeLater(runnable );
     
    	}
     
    }
    thread.start();
    Donc pour les 12000 premier enregistrement çà fonctionne bien ensuite je n'arrive plus à insérer. Cela me met l'erreur suivante au moment de la 12000e ( environ ) insertion donc c'est au moment des insertions que ca plante :

    erreur lors de l'insertion : GDS Exception. 335544430. unable to allocate memory from operating system
    Donc si j'ai bien compris j'ai plus assez de mémoire sur mon pc pour continuer.( la flaime d'achater un autre pc )

    J'ai tenté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Lance le ramassemiettes pour tenter de tuer les objets
    System.gc();

    Mais sans résultat, j'ai fait un sleep, sans résultat.



    Comment je pourrai faire pour libérer la mémoire pour que mes insertions aillent jusqu'à la fin de mes 28000 enregistrements ??

    Est-ce un problème d'un trop grand nombre d'insertions successives dans la bdd ?? personnellement je ne pense pas.

    Je ne vois vraiment pas comment régler mon problème.


    Merci d'avance pour votre aide,


    Cordialement

  2. #2
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    euh, à défaut de régler le problème tu peux peut-être le contourner :

    définir deux nombres "de" et "jusqua"
    lancer plusieurs fois la méthode
    de 1 jusqu'à 5000
    de 5001 jusqu'à 10000,
    etc...

    et dans le méthode, primo de 0 à "de" lire seulement, deuxio de "de" à "jusqua" lire et insérer.

    je l'utilise, pour ma part, sans problème, mais bien sûr ça ne répond pas à la question "pourquoi ?"

Discussions similaires

  1. [WORD]Problème de mémoire
    Par Dnx dans le forum VBA Word
    Réponses: 17
    Dernier message: 05/10/2005, 14h48
  2. [Tomcat][Spring] Problème utilisation mémoire
    Par Wutintin dans le forum Hibernate
    Réponses: 12
    Dernier message: 08/09/2005, 14h57
  3. [Crystal Report]Problème de mémoire avec le moteur RDC
    Par sur_uix dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/05/2005, 09h09
  4. Problème de mémoire avec BDE
    Par Machuet dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/07/2004, 10h11
  5. Problème de mémoire Affichage images
    Par Repti dans le forum C++Builder
    Réponses: 6
    Dernier message: 29/03/2004, 20h06

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