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

Spring Java Discussion :

Spring AOP PointcutAdvisor et PerformanceInterceptor


Sujet :

Spring Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2
    Par défaut Spring AOP PointcutAdvisor et PerformanceInterceptor
    Bonjour,
    j'utilise spring aop pour monitorer le temps d'executions de certaines de mes classes ...

    Context : appli web struts/spring/hibernate (.war) sous jboss.

    Tout va bien, j'utilise un regex method pointcut advisor pour monitorer uniquement les méthodes des classes répondant à certains noms de package.

    Mon problème se situe lorsque je change à chaud ce nom de package. Les méthodes monitorées précédemment vont continuer à être monitorées, par contre les méthodes répondant bien à la regex sur le package et n'ayant pas été monitorées une fois ne le sont pas, ce qui me fait dire que le changement a bien été pris en compte. De plus les methodes du nouveau package sont elles aussi monitorées ce qui confirme que le changement a chaud du package a bien fonctionné.

    L'objectif de ce changement a chaud de package était pour moi de ne plus voir les anciennes méthodes, ce qui n'est pas le cas ;(.
    Mon hypothèse est que mon interceptor est injecté (bytecode) dans l'appel à la méthode et qu'après il ne peut donc plus disparaitre ( sauf redeploiement du war ou redémarrage de jboss).

    Je donne un exemple pour être sur de me faire comprendre :
    PerformanceInterceptor est mon advisor et démarre un timer, execute la méthode, arrête le timer et log le temps.
    regex du package a monitorer.
    com\.core\.test\.Action* -> monitore toutes les actions struts.

    Je passe ma page de login, la méthode execute de ma classe LoginAction est loguée.

    Je change la regex du package à chaud ( via un mbean jmx ) :
    com\.core\.test\.service\.*
    J'appelle une nouvelle action struts, elle n'est pas loguée. Je me délogue puis repasse par la page de login et je vois le meme log que précédemment.

    Existe-t-il une solution pour que ces méthodes ne soit plus "interceptées" ?

    Si quelqu'un à une piste ??? parce que je ne peux pas me permettre de redémarrer jboss dès que j'ai besoin de monitorer les perfs d'un webservice ou d'une action ....

    Merci par avance.

  2. #2
    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
    Bonjour,

    Je pense que cette lecture pourrait vous aider (Load Time Weaving) :
    http://www.eclipse.org/aspectj/doc/r...guide/ltw.html

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/01/2008, 11h18
  2. Réponses: 3
    Dernier message: 04/04/2007, 08h45
  3. [Framework] HelloWorld avec Spring AOP
    Par LaJavanaise dans le forum Spring
    Réponses: 8
    Dernier message: 03/03/2006, 10h16

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