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 :

Aide à propos du cache du 2° niveau EHcache


Sujet :

Hibernate Java

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Aide à propos du cache du 2° niveau EHcache
    Bonjour,

    je travaille avec EHcache pour le cache du second niveau mais il n'est pas notifié en cas de modification en base de données extérieure
    à l'application. donc je me demande comment peut on paramétrer le cache de sorte que s'il y a un changement au niveau de la base, l'application charge de nouveau les éléments se trouvant dans la base et non pas ceux contenus dans le cache. ou bien est ce qu'il y a une solution alternative pour vider le cache après un changement dans la base.

    merci d'avance pour votre réponse.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 92
    Points : 108
    Points
    108
    Par défaut
    Il n'y a pas de synchronisation automatique entre les modifications effectuées en base de façon externe à l'application et le cache de second niveau. Il est cependant possible de paramétrer EHCache pour vider le cache sur timeout : la synchronisation n'est donc pas immédiate. Exemple de paramétrage EHCache :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <cache name="org.librairie.model.Categorie" 
             maxElementsInMemory="1000" 
             eternal="false"
             timeToIdleSeconds="2000" 
             timeToLiveSeconds="100000"  
             overflowToDisk="true" />
    timeToIdleSeconds :expiration après le dernier accès (élimination des données non utilisées)
    timeToLiveSeconds : expiration après l'ajout dans le cache (peu importe si les instances ont été accédées ou non)

    S'il faut une synchro en temps réel, il faut prévoir un moyen pour avertir l'application Java et vider le cache avec une des commandes suivantes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // Suppression d'une instance du cache
    SessionFactory.evict(Categorie.class, new Long(10));
     
    // Suppression de toutes les instances d'une classe
    SessionFactory.evict("org.librairie.model.Categorie");

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    merci ohanny pour ta réponse,

    en fait j'ai déjà paramétré ehcache de la sorte, mais pour ta deuxième solution je crois que c'est valable pour le cache de la session (cache du niveau 1), et non pas pour le cache de partage (niveau 2)

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    oups désolé c'est pour le cache du 2° niveau

    merci ohanny

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 92
    Points : 108
    Points
    108
    Par défaut
    ok maybil, j'espère que ces infos t'aideront à gérer le cache comme tu le souhaites

Discussions similaires

  1. [AC-2007] AIDE à propos d'une contrainte au niveau d'access
    Par karomaz1 dans le forum Access
    Réponses: 1
    Dernier message: 31/03/2013, 15h22
  2. [Batch] Aide à propos de Quartz Spring
    Par midoENSI dans le forum Spring
    Réponses: 2
    Dernier message: 26/10/2007, 09h09
  3. [Débutant] Aide à propos de la Sérialisation
    Par dinver dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/01/2007, 15h03
  4. Besoin d'aide à propos de JSF
    Par mejri dans le forum JSF
    Réponses: 1
    Dernier message: 29/06/2006, 14h35
  5. Aide à propos des strings
    Par Invité dans le forum Général Python
    Réponses: 2
    Dernier message: 26/06/2006, 09h43

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