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

Frameworks Web Java Discussion :

get Hibernate Template()


Sujet :

Frameworks Web Java

  1. #1
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut get Hibernate Template()
    Salut à tous,
    j'ai un problème d'exécution d'une requête avec hibernate, le temps d'exécution de cette requête est beaucoup trop long de l'ordre de la minute!!!

    la requête est un select contactid, contactnom, contactprenom from contact

    Après passage en debug, le code qui dure (mais qui bloque pas) est le suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    List<Object[]> results = new ArrayList<Object[]>();
     
    request.append("select cont.contactid, cont.contactnom, contactprenom ");
    request.append("from Contact cont");
    request.append(" order by cont.contactnom, cont.contactprenom asc");
    ..
    if (request.length() > 0) {
    //c'est ici que ca bloque sur le getHibernateTemplate()
    	results = getHibernateTemplate().find(request.toString());
    }
    Voila, cette requête se fait en 15ms avec mon gestionnaire de bdd mais la ya un problème!
    Si vous avez une idée ça m'aiderait bien!
    Merci d'avance!

  2. #2
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    T'as assyé de retourner les objet cont plutot que les 3 propriété de cont (contactid,contactnom etc..) ?

  3. #3
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    oui j'ai essayé "from contact" tout simplement et c pire!

  4. #4
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Ca manque d'infio pour te répondre. Ton code est bon a ce niveau, le probleme se situe autre part.

  5. #5
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    mais c'est pourtant bien sur le getHibernateTemplate() que ca lague!!

    J'ai testé en enlevant tout les codes superflus (javascript onload de ma jsp, appel à d'autres méthode pendant l'action...), j'ai juste laissé l'essentiel mais ça ne change rien.
    En debug ca bloque à un seul endroit, le getHibernateTemplate()!

    Donc je vois pas ou ca peut être ailleurs vu que tout me montre que c'est ca!
    Vous voulez que je vous montre quel bout de code en plus si ça peut vous aidez?

  6. #6
    Membre chevronné Avatar de JoloKossovar
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 532
    Par défaut
    Tu utilise quel version d'hibernate ? je sais que sur certaine version la version du cglib incluse dans la distribution provoquait des fuites mémoire... Peut etre est ce lié ...

  7. #7
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Je suis pas sur, jai pris le projet en cours!
    Dans webapp libraries j'ai hibernate3.jar et hibernate-tools.jar

  8. #8
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Je te précise également que la requête me retourne 1664 enregistrement!
    Donc c très peu sachant qu'en préprod il y'en a plus de 20000!
    Les clés primaires et étrangères des tables sont bien indexés!
    Que dire d'autre?

  9. #9
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    et je précise également que lorsque je retourne environ 500 enregistrement ca prend un temps a peu près normal, et que quan la requete retourne moins d'une centaine ca trace!

    Donc c'est lié peut etre comme tu dis a une perte mémoire !
    Je sais pas

  10. #10
    Membre chevronné
    Profil pro
    Développeur Java
    Inscrit en
    Novembre 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2007
    Messages : 301
    Par défaut
    1664 enregistrements, c'est quand même pas mal. Il faut le temps de construire tous les objets et si tu as peu de mémoire cela peut être problématique...

  11. #11
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par lextaz33 Voir le message
    et je précise également que lorsque je retourne environ 500 enregistrement ca prend un temps a peu près normal, et que quan la requete retourne moins d'une centaine ca trace!

    Donc c'est lié peut etre comme tu dis a une perte mémoire !
    Je sais pas
    la consommation synchrone de gros "result sets" est rarement une solution élégante en terme de réactivité d'une application lorsqu'un utilisateur attend le résultat dans une UI…

    il est peut-être temps pour vous d'envisager un modèle producteur/consommateur asynchrone…

  12. #12
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    Wow!!
    Ok ça à l'air super great!

    Mais ça veut dire quoi?
    Synchrone/Asynchrone faut m'expliquer comme tu vois je ne suis encore qu'un peut être futur membre du club seulement!!!

  13. #13
    Membre confirmé Avatar de lextaz33
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2008
    Messages
    169
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2008
    Messages : 169
    Par défaut
    OK tu veu que je fasse des threads et tout ça pour gérer les accès à la base, mais la ya pas de concurrence dans mon accès à la base!!
    J'suis seul à y accéder alors ça va changer quoi de partir dans ce domaine?

  14. #14
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par lextaz33 Voir le message
    OK tu veu que je fasse des threads et tout ça pour gérer les accès à la base, mais la ya pas de concurrence dans mon accès à la base!!
    J'suis seul à y accéder alors ça va changer quoi de partir dans ce domaine?
    ça dépend de votre application et de son cahier des charges…

  15. #15
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Que fait getHibernateTemplate() ?
    Peux-tu montrer son code ?

    A+
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  16. #16
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 963
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 963
    Par défaut
    Citation Envoyé par OButterlin Voir le message
    Que fait getHibernateTemplate() ?
    Peux-tu montrer son code ?

    A+
    sans doute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    org.springframework.orm.hibernate.support.HibernateDaoSupport. getHibernateTemplate()
    ?



    de toute façon, le problème n'est pas là…

    gros result set => problèmes de mémoire et si en plus il y a une UI : problèmes de réactivité (l'utilisateur ne peut rien faire en attendant les résultats, pas d'affichage de "progress", … )

    solutions = query paginé pour la mémoire + si UI : traitement asynchrone
    (dans une WepApp avec RIA cela vient naturellement de l'aspect asynchrone d'AJAX, sinon il faut le gérer soit même…)

Discussions similaires

  1. [HIBERNATE] Error getting Hibernate Session Factory
    Par so7lob dans le forum Hibernate
    Réponses: 1
    Dernier message: 16/12/2008, 14h29
  2. Réponses: 2
    Dernier message: 23/04/2008, 11h49
  3. Hibernate Tools et Template
    Par Rakken dans le forum Hibernate
    Réponses: 2
    Dernier message: 07/04/2008, 22h36
  4. [Hibernate Tools] Template DAO
    Par ericw78 dans le forum Hibernate
    Réponses: 3
    Dernier message: 06/04/2007, 11h51
  5. [Hibernate] Petites questions (proxy?, load vs get)
    Par seawolfm dans le forum Hibernate
    Réponses: 4
    Dernier message: 07/02/2006, 10h00

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