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 :

mise a jour ehcache suite a mise a jour externe


Sujet :

Hibernate Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 233
    Par défaut mise a jour ehcache suite a mise a jour externe
    Bonjour,

    j ai le pb suivant

    Avec hibernate, j ai un ehcache qui stocke des donnees issues de tables qui ne bougent pas normalement (ex le nom des services de la societe)

    Par contre, je vais devoir faire une petite appli pour pouvoir changer ces donnees quasi statique (en cas de reorganisation par exemple). Pour l instant c est fait a la main via SQL ... on est en phase de beta test

    Question. si je changes ces donnees sans passer par hibernate/ehcache le cache ne va pas les prendre en compte (normal) et donc je vais me trainer les anciennes donnees .

    J ai lu la doc d ehcache, il y a pas de fonction purge ou reset du cache

    Quelle est la solution ? (a part integrer hibernate/ehcache dans l outil de mise a jour, ce qui est pas evident vu que ca sera du quick and dirty-> pas de budget pour cet outil)

  2. #2
    Membre averti
    Inscrit en
    Octobre 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 45
    Par défaut
    il me semble bien que c'est un problème du cache de second niveau Hibernate. Enfin, problème... c'est logique que si tu mets la bdd à jour d'un autre façon qu'en passant par le système de cache, celui-ci ne prendra pas en compte les nouvelles données. A ma connaissance il n'y a pas de solution, à part de désactiver le cache de second niveau sur ta première appli.

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 276
    Par défaut
    Tu pourrais :
    - relancer ton appli en cas de mise à jour de ta table
    - customiser la durée de vie du cache

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 233
    Par défaut y a pas mieux?
    option 1:
    Arreter/relancer l appli est certes une solution mais c est un peu lourd ... ca veut dire envoyer a mail a tous les utilsateurs disant qu on est indisponible entre telle et telle heure et a ce moment relancer... C est le marteau pilon pour ecraser une noix

    option 2: reduire la duree de vie
    J y avais pense. Seul pb, on ne sait pas a quel moment on va avoir le passage des anciennes aux nouvelles donnees (puis que ca depent de l anciennete dans le cache). On sait juste qu au pire ca sera dans X h (si j ai mis X pour TTL)

    Le probleme devient carrement bloquant si on a modifie plusieurs choses (pas forcement dans des tables differentes d ailleurs). On pourrait tres bien avoir un champs Y qui a la nouvelle valeur (car pas dans le cache avant ou a expire) et le champs Z qui lui n a pas encore expire et qui va afficher l ancienne valeur!

    C est quand meme bizarre que ce type de probleme a ete oublie par hibernate/ehchache

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    365
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Janvier 2006
    Messages : 365
    Par défaut
    Salut,
    A mon avis, si la mise à jour des données du cache en l'invalidant à intervalle régulier de temps ne suffit pas à résoudre le problème, il se peut que la mise en place même du cache ne convienne pas pour ces données. Car, vu la description que tu en fais, j'ai l'impression que les données pourraient changer souvent, et auquel cas le cache n'est plus pertinent. Je pense qu'un cache ne devrait être mise en place que pour des tables qui ne sont que très peu mises à jour, et que lorsque ça intervient, l'impact sur l'application doit être réduit le plus possible.
    Un autre point, c'est qu'une application devrait être conçue pour ateindre un niveau de performance acceptable sans utilisation de cache, en optimisant par exemple les requêtes, les chargements de collections d'objets, etc. Le cache (de second niveau) n'étant qu'un plus pour certaines situations.
    Bon, ça ne résout peut-être pas ton problème, mais j'avais juste envie de livrer cette réflexion. J'espère que ça aide.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    233
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 233
    Par défaut extra info
    non c est des donnes qui ne bougent normalement pas, par exemple la liste des services de la societe.
    Pour l appli principale J2EE/hibernate, c est des donnees en lecture seule

    Par contre il faut bien que ces donnees puissent etre modifiees (par ex 1 fois tous les 3 ans) et la on va utiliser autre chose comme appli (non definie a leur qui est, mais du quick & dirty and pas cher ...)

    Pour le moment je vois 3 solutions
    - arret/redemarrage du server J2EE pour recharger le cache (dur on n ets pas la seule appli sur le serveur)
    - mettre des TTL tres faible dans ehcache (<5 min), mais c est pas terrible pour les pb exposes + haut
    - coder l outil de mise a jour en integrant ehcache et hibernate (donc maj automatique des cache). Probleme, c est plus de developpement

    Il y a aussi bien sur la solution de modifier ehcache mais bon ....

Discussions similaires

  1. [EasyPHP] Erreur de connexion subite suite a mise a jour de la bdd
    Par keaton7 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 06/02/2009, 13h04
  2. [Oracle] Catchable fatal error: (suite à une mise à jour en PHP 5.2)
    Par nyto-86 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 05/06/2008, 11h53
  3. petite question suite à une mise à jour
    Par pitou_christophe dans le forum Bubuntu
    Réponses: 1
    Dernier message: 30/05/2008, 21h22
  4. inclusion échouant suite à une mise à jour
    Par moliere007 dans le forum Langage
    Réponses: 3
    Dernier message: 15/01/2008, 10h13
  5. blocage PC suite a mise a jour Windows
    Par blandinais dans le forum Windows XP
    Réponses: 5
    Dernier message: 13/11/2006, 15h30

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