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

NHibernate Discussion :

[NHibernate] Ajout d'archive seulement dans la base


Sujet :

NHibernate

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut [NHibernate] [Resolut] Ajout d'archive seulement dans la base
    Bonjour,

    J'utilise actuellement NHibernate dans un logiciel qui archive des données.
    Dans le logiciel, chaque nouvelles archives est ajouté à une "collection" et sauvegarder dans la base de donné grâce à NHibernate.

    La taille en mémoire de mon logiciel augmente avec l'ajout de nouvelles archives. Aussi je souhaiterai savoir si vous connaissez un moyen dans NHibernate pour que les données ne soient pas conserver en mémoire mais soient seulement présentes dans la base. Un peu comme ce qu'il se passe a l'ouverture d'un objet avec le lazy loading a true. Tous le contenu des objets n'est pas chargés. L'objet n'est complètement récupéré qu'a partir du moment ou on l'utilise.

    Je ne sais pas si je me suis bien expliquer.
    D'avance, je vous remercie de votre aide.

    Christophe.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    Je voudrai bien t'aider, mais je ne comprends pas la question.

    Je comprends que tu as une collection d'objets archive qui forcémment devient de plus en plus importante dès que tu en ajoutes une.

    Malheureusement, tant que tu charges des objets, ils seront en mèmoire, a moins de réduire la taille des objets ou d'utiliser de la pagination, je ne vois pas trop ce que tu vas pouvoir changer.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Je vais essayer d'éclaircir un peu ma question.

    En fait je souhaiterai savoir si on peux décharger les objet de la mémoire, tout en les maintenant en base de donné. Il faudrait ainsi que Nhibernate sois munis d'une fonction permettant de le "unloader" de la mémoire mais qu'il garde le lien existant vers ces objets en db.

    Aussi, a l'ouverture de collection avec NHibernate, il ne charge pas les objet complètement lorsque l'on met lazy-loading a true. Je ne trouve pas de methode permettant de décharger les objet créer durrant l'utilisation de l'application pour les passer dans le meme etat qu'ils se trouvent a l'ouverture de l'application.

    Merci.
    Christophe.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 273
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 273
    Points : 2 202
    Points
    2 202
    Par défaut
    Session.evict()

    qui va enlever l'objet du cache nhibernate et qui devrai alléger la mèmoire

    Ce qui te demandera
    - de ré-attacher
    - de gérer le "SaveOrUpdate"

    Mais ça me semble le plus proche de ce que tu souhaites.

    Le lazy loading est différent dans son fonctionnement.

    Tu ne peux pas te défaire de l'objet et vouloir gérer son état. En revanche, tu peux ré-attacher(saveorupdate) un objet détaché (evict), qui est une mécanique de destination similaire.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Merci pour tes réponses B.AF
    Je vais essayer cela.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Bonjour B.AF,

    J'ai essayer la fonction Evict mais je ne gagne pas beaucoup.
    Je vais rechercher si il n'existe pas un truc qui permettrait de maintenir en memoire seulement les objets récemment accéder de la collection.

    Christophe.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Developpeur Delphi

    Informations forums :
    Inscription : Septembre 2003
    Messages : 34
    Points : 30
    Points
    30
    Par défaut
    Bonjour,

    Finalement j'ai ré-architecturé mon logiciel. Je n'utilise plus la collection qui grossissait indéfiniment.

    Merci de votre aide.
    Christophe.

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

Discussions similaires

  1. MàJ/ajout d'un enregistrement dans une base de données mySQL
    Par BMT_Benoît dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/08/2007, 08h02
  2. ajoute d'une ligne dans une base de donnes
    Par anisj1m dans le forum JDBC
    Réponses: 5
    Dernier message: 19/03/2007, 19h35
  3. Réponses: 4
    Dernier message: 14/06/2006, 17h22
  4. [SQL/BDD] Ajout massif de donnees dans une base mysql
    Par tomWag dans le forum Requêtes
    Réponses: 5
    Dernier message: 02/05/2006, 18h06
  5. [MySQL] Ajout d'un record dans une base de donnees
    Par barthelv dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/03/2006, 16h03

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