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 :

[REGION][CACHE]Besoin d explications?


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut [REGION][CACHE]Besoin d explications?
    Hello,

    Je suis en train de me mettre à Hibernate.
    J'ai acheter un bon livre sur le sujet...
    J'ai une petite interrogation concernant les regions de cache (de niveau 2).
    J'aurais aimé avoir une confirmation

    Cette fonctionnalité permet de déclarer un identifiant commun (le nom de la region de cache) a plusieurs classes persistantes (ou collections) afin de pouvoir leur appliquer la même statégie de gestion de cache (lecture seule, lecture-ecriture non stricte, etc...).

    Par défaut la déclaration du cache de niveau 2 dans chaque classe est limité à la classe courante; En précisant, un nom de region de cache la classe est rattachée à un groupe qui a une stratégie commune?

    Suis je dans le vrai?

    Merci d'avance pour votre aide!

  2. #2
    Membre émérite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par défaut
    Un région de cache est, en effet une stratégie de cache L2 définie dans le fichier de config de ton cache. Cette stratégie repose sur divers paramétres :
    - durée de vie des objets
    - temps avant synchronisation avec la base
    - nombre d'objets maximum dans ce cache
    - etc...

    Voici poar exemple les caractéristiques d'une "région" définie par EHCache :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Default Cache configuration. These will applied to caches programmatically created through the CacheManager.
    The following attributes are required:
            maxInMemory  
    - Sets the maximum number of objects that will be created in memo
            eternal   
    - Sets whether elements are eternal. 
    If eternal,  timeouts are ignored and the element is never expired.
            overflowToDisk
    - Sets whether elements can overflow to disk 
    when the in-memory cache has reached the maxInMemory limit.
    
    The following attributes are optional:
            timeToIdleSeconds
    - Sets the time to idle for an element before it expires.
     i.e. The maximum amount of time between accesses before
     an element expires Is only used if the element is not eternal.
    Optional attribute. A value of 0 means that an Element can idle for infinity.
    The default value is 0.
    
            timeToLiveSeconds
    - Sets the time to live for an element before it expires.
    i.e. The maximum time between creation time and when an element expires.
    Is only used if the element is not eternal.
    Optional attribute. A value of 0 means that and Element can live for infinity.
    The default value is 0.
     
           diskPersistent
    - Whether the disk store persists between restarts of the Virtual Machine.
    The default value is false.
    
           diskExpiryThreadIntervalSeconds
    - The number of seconds between runs of the disk expiry thread. 
    The default value is 120 seconds.
    Les stratégies d'accès en lecture/écriture sont quant à elle définie non pas dans ta région mais dans ton fichier de mapping pour chaque classe mappée, où tu signales la région, les accès à faire sur ce cache, etc. comme le montre la DTD d'Hibernate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <cache 
        usage="transactional|read-write|nonstrict-read-write|read-only"  
        region="RegionName"                                              
        include="all|non-lazy"                                           
    />

  3. #3
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Merci pour ta réponse!!

    Je vais reprendre ce que tu as dis en expliquant ce que j'ai compris :
    (Tu pourras me dire si j'ai compris ou non .. )


    Au niveau du founisseur de cache (EHCache ici), on défini un 'espace' de cache (une région). On paramètre cette region de cache avec certaines informations (délai d'expiration des objets, nombre max d'objet, persistance sur le disque,etc....).
    Au niveau du parametrage de la classe persistance vis à vis du cache, on indique la region du cache qu'utilisera la classe et surtout de quelle maniere elle y accedera (transactional|read-write|nonstrict-read-write|read-only).

    C'est bien cela?


    Il me semble que l'attribut region n'est pas obligatoire, donc je suppose que si il n'est pas specifié, la classe persistance sera stockée dans la cache parametrer par défaut du founisseur de cache?

    Merci d'avance pour ton aide!

  4. #4
    Membre émérite Avatar de BizuR
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    688
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 688
    Par défaut
    (1) usage (requis)
    Spécifie la stratégie de cache : transactionel, lecture-écriture, lecture-écriture non stricte ou lecture seule

    (2) region (optionnel)
    Par défaut il s'agit du nom de la classe ou du nom de role de la collection.
    Spécifie le nom de la région du cache de second niveau

    (3) include (optionnel)
    Par défaut all.
    Non-lazy spécifie que les propriétés des entités mappées avec lazy="true" ne doivent pas être mises en cache lorsque le chargement tardif des attributs est activé.
    Voila le résultat en lisant la doc en ligne d'Hibernate .
    Apparemment il cherche une région propre à la classe ou à l'association (avec un éventuel préfixe donné dans le fichier de configuration) et si il ne trouve pas cette région, il prend celle par défaut dans le cache

  5. #5
    Membre Expert
    Avatar de fabszn
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2002
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Mars 2002
    Messages : 974
    Par défaut
    Hello,

    Merci pour ton aide!

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

Discussions similaires

  1. besoin d'explication sur le c++
    Par poporiding dans le forum MFC
    Réponses: 13
    Dernier message: 17/12/2005, 18h01
  2. Besoin d'explications sur un bout de code
    Par zizitop dans le forum C
    Réponses: 7
    Dernier message: 26/04/2005, 14h51
  3. [C#] J'aurais besoin d'explication
    Par Roach- dans le forum Windows Forms
    Réponses: 18
    Dernier message: 10/03/2005, 16h00
  4. Besoin d'explications sur float et l'élasticité !
    Par KneXtasY dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 14/01/2005, 15h15
  5. [Foreign Key] Besoin d'explication.
    Par Andry dans le forum Débuter
    Réponses: 4
    Dernier message: 28/05/2003, 11h34

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