These old forums are deprecated now and set to read-only. We are waiting for you on our new forums!
More modern, Discourse-based and with GitHub/Google/Twitter authentication built-in.

All times are UTC - 5 hours [ DST ]



Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 
Author Message
 Post subject: Gestion de mémoire ...
PostPosted: Mon Apr 03, 2006 4:18 am 
Newbie

Joined: Fri Mar 31, 2006 11:20 am
Posts: 5
Salut,

Je fais un programme d'insertion de fichiers de mesures dans une base postgresql.
Voici comment cela se passe :
Pour des raisons d'optimisation mémoire, je prends les fichiers 2 par 2 ; je valide leurs données en les comparant avec un modèle en xml (validation), je dispatche chaque mesure dans les objets de mon mapping hibernate (Datadistribution.distribute), puis j'insère le tout dans ma base avec un commit (dataInsertion.closeTransaction).

Tout se passe bien lors de la première boucle (les 2 premiers fichiers) mais dès qu'il prend les 2 suivants, c n'importe quoi, toutes les requetes qur la base me sont refusees.

Pour libérer la mémoire encombrée par les objets hibernate, j'ai tenté un clearSession mais ca n'a pas l'air de fonctionner. Voici un bout de mon main qui illustre tout ce que j'ai dit jusque là :

for(int i=0 ; i<nbFic ; i=i+2) {
dataInsertion.initHibernate ();
dataInsertion.getFichiersInseresFromDatabase ();
filesToInsertBy2[0] = filesToInsert[i];
filesToInsertBy2[1] = filesToInsert[i+1];
dataInsertion.beginTransaction ();

validation = new Validation (lectModele,
filesToInsertBy2,
dossier,
plateforme,
dataInsertion);
int nbErreurs = validation.getNbErreursTotales ();

if (nbErreurs == 0) {
dataDistribution = new DataDistribution (validation,
lectModele,
listeJeuxFileName,
parametreXlsFileName);

dataDistribution.distribute (plateforme, dataInsertion);
}

System.out.println("********** INSERTION DANS LA BASE **********");
dataInsertion.closeTransaction ();
dataInsertion.clearSession ();
dataInsertion.shutdownHibernate ();
}

Auriez-vous une idée de pourquoi hibernate crashe après la première itération de for? Est-ce que la méthode clear est judicieuse pour optimiser la mémoire?
J'espère que vous pourrez m'aider.

Merci d'avance...


Top
 Profile  
 
 Post subject: Re: Gestion de mémoire ...
PostPosted: Mon Apr 03, 2006 5:48 am 
Newbie

Joined: Fri Mar 31, 2006 11:20 am
Posts: 5
Re!

J'ai résolu par hasard une partie de mon problème :

MithZeWhite wrote:
Tout se passe bien lors de la première boucle (les 2 premiers fichiers) mais dès qu'il prend les 2 suivants, c n'importe quoi, toutes les requetes qur la base me sont refusees.


Il suffisait de ne pas fermer la session (dataInsertion.shutdownHibernate)... Ce que je ne comprends pas puisque j'en ouvre une autre au début de la boucle!

Bref! Sinon j'aimerais bien que l'on m'aide pour la partie optimisation de mémoire ... :)

Merci !


Top
 Profile  
 
 Post subject:
PostPosted: Tue Apr 04, 2006 4:27 am 
Hibernate Team
Hibernate Team

Joined: Sun Sep 14, 2003 3:54 am
Posts: 7256
Location: Paris, France
http://www.hibernate.org/hib_docs/v3/reference/fr/html_single/#batch

_________________
Emmanuel


Top
 Profile  
 
Display posts from previous:  Sort by  
Forum locked This topic is locked, you cannot edit posts or make further replies.  [ 3 posts ] 

All times are UTC - 5 hours [ DST ]


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Search for:
© Copyright 2014, Red Hat Inc. All rights reserved. JBoss and Hibernate are registered trademarks and servicemarks of Red Hat, Inc.