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

Weblogic Java Discussion :

Weblogic 8.1 + Hibernate : pb de cache


Sujet :

Weblogic Java

  1. #1
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut Weblogic 8.1 + Hibernate : pb de cache
    Il semble que j'ai un problème de cache avec Weblogic 8.1 et Hibernate (avec Oracle 9). Avec Tomcat 5.5 ça marche bien. Le navigateur est IE6 et le cahce est réglé sur "Automatiquement". Java 1.4 et Hibernate 3.
    Exemple vécu il y a quelques minutes :
    utilisateur 1 : suppression de 2 éléments dans une donnée (autre que celles du référentiel).
    Oracle : éléments supprimés
    Visu des données par utilisateur 1 : les 2 éléments sont toujours là
    Visu des données par utilisateur 2 : il y a un élément sur 2

    Quelqu'un sait comment gérer le cache dans Weblogic ?

    Au cas ou ça viendrait de mon code :
    Entêtes des jsp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache,no-store">
    <meta http-equiv="cache" content="no store">
    <meta http-equiv="expires" content="0">
    hibernate.cfg.xml :
    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
    <hibernate-configuration>
    	<session-factory name="InoutSessionFactory">
    		<property name="connection.datasource">java:comp/env/InoutPoolDataSource</property>
    		<property name="dialect">org.hibernate.dialect.OracleDialect</property>
    		<property name="hibernate.show_sql">true</property>
    		<property name="hibernate.transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </property>
    		<property name="hibernate.current_session_context_class">thread</property>
    		<property name="hibernate.connection.autocommit">true</property> 
     
            <property name="cache.use_second_level_cache">true</property>
            <property name="cache.provider_class">org.hibernate.cache.OSCacheProvider</property>
            <property name="cache.use_query_cache">false</property>
     
    		<mapping resource=".../Table1.hbm.xml" />
    		...
    		<!-- referentiel -->
    		<class-cache class="fr...business.table.Table1" usage="read-write" />
    	</session-factory>
    </hibernate-configuration>
    HibernateSessionFactory.java :
    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
     
    public class HibernateSessionFactory {
        private static final ThreadLocal threadLocal = new ThreadLocal();
        private static final Configuration cfg = new Configuration();
        private static SessionFactory sessionFactory;
        public static Session currentSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            if (session == null) {
                if (sessionFactory == null) {
                    try {
                    	cfg.configure();
                      sessionFactory = cfg.buildSessionFactory();
                    }
                    catch (Exception e) {
                        System.err.println("%%%% Error Creating SessionFactory %%%%");
                        e.printStackTrace();
                    }
                }
                session = sessionFactory.openSession();
                threadLocal.set(session);
            }
           return session;
        }
        public static void closeSession() throws HibernateException {
            Session session = (Session) threadLocal.get();
            threadLocal.set(null);
     
            if (session != null) {
                session.close();
            }
        }
        private HibernateSessionFactory() {
        }
    }
    Méthode d'enregistrement dans Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    	public static void store(Table1 table) throws Exception {
    		Session session = HibernateSessionFactory.currentSession();
    		try {
    			session.beginTransaction();
    			session.saveOrUpdate(table);
    			session.getTransaction().commit();
    			session.flush();
    		} catch (Exception e) {
    			log.error("table - store ", e);
    			session.getTransaction().rollback();
    			throw new Exception("table - store ", e);
    		}
    	}
    Christophe

    Pensez à mettre quand c'est le cas.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 303
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 303
    Points : 1 380
    Points
    1 380
    Par défaut
    J'ai ajouté "session.clear();" après le commit et ça à l'air de fonctionner (pour l'instant). Ca m'embête quand même de devoir vider le cache.
    Christophe

    Pensez à mettre quand c'est le cas.

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

Discussions similaires

  1. hibernate et le cache
    Par mon_pseudo dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/07/2009, 15h01
  2. Weblogic 8.1 + Hibernate : pb de cache
    Par Christophe P. dans le forum Hibernate
    Réponses: 1
    Dernier message: 17/01/2007, 14h01
  3. Hibernate et le cache
    Par titeuf92 dans le forum Hibernate
    Réponses: 6
    Dernier message: 07/12/2006, 16h15
  4. [Hibernate] Gérer le cache L2
    Par mauvais_karma dans le forum Hibernate
    Réponses: 2
    Dernier message: 30/08/2005, 11h50
  5. [Hibernate]comprendre la cache sur hibernate
    Par ujoodha dans le forum Hibernate
    Réponses: 16
    Dernier message: 29/08/2005, 09h02

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