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

Hibernate Java Discussion :

Gestion du cache


Sujet :

Hibernate Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut Gestion du cache
    Hello à tous,

    Je viens de migrer un projet sur hibernate, et j'ai un souci avec les caches :
    Y a-t-il un moyen d'initialiser le chargement des caches, c'est-à-dire pour certaines entités charger directement toute la table en mémoire ?

    Comment se fait le rechargement des caches ? J'ai vu qu'il y avait des méthodes comme "evict" et "evictCollection" qui permettent d'enlever des classes/collections du cache via la factory, mais j'ai vu que ces méthodes sont deprecated, quelle est la bonne manière de faire ?

    Merci d'avance pour vos infos !

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    de quel cache tu parle pour commencer? Premier niveau (Session, avec des objets hydratés) ou deuxième niveau (Factory, données déshydratées)?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    Je parle du cache du second niveau.

    Qu'appelles-tu données déshydratées ?

    Merci!

  4. #4
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    des données qui ne sont pas objectifié, on est plus proche là qu'un cache base de donnée que d'un cache d'objets Bref c'est ce qui se trouve dans le cache de second niveau. Hibernate appelle l'hydratation, le fait de prendre un objet java, et d'y injecter les données venues du cache

    Maintenant que cherche tu a faire exactement avec le cache de second niveau? Pourquoi vouloir le "précharger" avec des données, sachant que
    -> hibernante le remplira au fur et à mesure avec les données réellement utilisées
    -> les données peuvent être éjectée automatiquement du cache soit pour faire de la place, soit parce qu'un opération HQL effectuée implique qu'on ne peux plus garantir l'exactitude de son contenu.


    Tu peux éventuellement faire un (select * from TonEntite) pour forcer hibernante à lire toute une table, mais c'est un peu inutile à mon avis.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    oki je connaissais pas cette notion

    En fait je voulais pouvoir charger les objets des tables que j'utilise tout le temps mais à priori seulement le 1er traitement sera long, ce n'est donc pas très grave.

    Par contre il arrive souvent dans l'appli qu'il y ait des batchs externes modifiant les données en base. Comment je pourrais faire pour que les objets du cache de second niveau soient mis à jour ? Je fais un evict sur les entités concernés ?

    Merci

  6. #6
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Tu peux soit détruite la session factory, soit faire un Cache cache = factory.getCache(); puis d'appeler les différents evict sur ce cache (evictcollections(), evictEntities(), ....)

    En général, l'utilisation d'un cache de second niveau n'est pas à utiliser avec des données qui sont régulièrement mise à jour depuis l'extérieur.

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 106
    Par défaut
    Ok je vais faire des petits evict alors

    Maintenant j'ai plus qu'à me lancer dans JBossCache pour faire de la réplication ...

    Merci pour ton aide tchize

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

Discussions similaires

  1. Gestion du cache en Load Balancing
    Par loic_86 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 10/09/2007, 10h00
  2. [cache] Gestion du cache en général
    Par Maxoo dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 15/12/2006, 10h21
  3. Gestion du cache d'un ResulSet
    Par skunkies dans le forum JDBC
    Réponses: 1
    Dernier message: 30/10/2006, 18h12
  4. [Sécurité] Gestion du cache / cookies
    Par dug dans le forum Langage
    Réponses: 4
    Dernier message: 25/01/2006, 21h17
  5. [Xml][Memoire] gestion du cache
    Par tatou42 dans le forum Format d'échange (XML, JSON...)
    Réponses: 11
    Dernier message: 21/09/2005, 17h48

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