SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
Outils d'audit et diagnostic
d'applications Java EE avec JOnAS




                          Mathieu.Ancelin@serli.com
           18 Mars 2010    Florent.Benoit@bull.net
Plan

Contexte
Outil de diagnostic
Outil d'audit
Démo
Futur




© OW2 Consortium 2010   http://jonas.ow2.org   2
Contexte




© OW2 Consortium 2010    http://jonas.ow2.org   3
Pourquoi ?

Standards Java EE
   Assurent la portabilité d'une application
   Rien sur la partie performance
Robustesse d'une application ?
   On peut coder une application Java EE sans que
    celle-ci soit robuste
Trouver les problèmes de performances ?
   Pas toujours évident avec les appels imbriqués
    entre composants.
Traçabilité
   Avoir une trace de toutes les actions effectuées
« Mesurabilité » des services
   Par exemple, connaître la consommation
    mémoire liée à une requête
© OW2 Consortium 2010   http://jonas.ow2.org     4
Outil de diagnostic
                        Fuite de connexions JDBC




© OW2 Consortium 2010            http://jonas.ow2.org   5
« pool » de connexions JDBC


Limiter le nombre de connexions vers la base
Optimiser le temps de fourniture des connexions



                         datasource.getConnection();
                         connection.createStatement();
                         ....
                         ....
                         connection.close();
  Pool DataSource


 © OW2 Consortium 2010      http://jonas.ow2.org         6
Oubli de l'appel à connection.close()
                                              Connexions en cours
                                                  d'utilisation
                                                ou non fermées




       Pool DataSource    Pool Vide
  Problème :
   plus de connexions disponibles pour les
   nouveaux clients
     → Connexions jamais fermées
      • → non retour dans le pool
     → Mise en attente pour les autres clients
      • Pas de connexions libres dans le pool !
  © OW2 Consortium 2010      http://jonas.ow2.org                   7
Gestion de l'oubli de fermeture ?


 Éviter la saturation du pool en production
   Fermetures automatiques par JOnAS
     • A la fin d'un appel de méthode (stateless /
       requête HTTP), remove() sur stateful.
   Durée de vie des connexions JDBC
     • Si aucune action n'est effectuée sur une
       connexion pendant un laps de temps, celle-ci
       est remise dans le pool

 Ces solutions ne sont que des rustines
   But : corriger le problème à la source
     • Aide à la correction via la console de JOnAS
        –Pister l'origine du problème
  © OW2 Consortium 2010   http://jonas.ow2.org    8
Servlet utilisant JDBC
55      protected void doGet(....) {
56        response.setContentType("text/html");
57        PrintWriter out = response.getWriter();
58        out.println("<html><body>");
59
60           DataSource ds = null;
61           try {
62             ds = (DataSource) new InitialContext().lookup("jdbc_1");
63             ds.getConnection();
64           } catch (NamingException e) {
65             e.printStackTrace();
66           } catch (SQLException e) {
67             e.printStackTrace();
68           } finally {
69             out.println("</body></html>");
70             out.close();
71           }
72
73      }




     © OW2 Consortium 2010        http://jonas.ow2.org             9
Capture d'écran console JOnAS Admin




                         Ligne à analyser




 © OW2 Consortium 2010         http://jonas.ow2.org   10
Servlet avec l'erreur
55    protected void doGet(....) {
56      response.setContentType("text/html");
57      PrintWriter out = response.getWriter();
58      out.println("<html><body>");
59
60        DataSource ds = null;
61        try {
62          ds = (DataSource) new InitialContext().lookup("jdbc_1");
63          ds.getConnection();
64        } catch (NamingException e) {
65          e.printStackTrace();
66        } catch (SQLException e) {
67          e.printStackTrace();
68        } finally {
69          out.println("</body></html>");
70          out.close();
71        }
72
73    }




 © OW2 Consortium 2010        http://jonas.ow2.org             11
Outil de diagnostic
            Affichage/Supervision des threads




© OW2 Consortium 2010    http://jonas.ow2.org   12
Information sur les threads JVM




© OW2 Consortium 2010   http://jonas.ow2.org   13
Outil d'audit




© OW2 Consortium 2010      http://jonas.ow2.org   14
Objectifs du système d'audit
Outil de développement
   Mise au point des applications
   Repérer les points chauds et les goulots
    d'étranglement
   Amélioration des performances
Fréquentation des applications
   Statistiques sur les fonctionnalités les plus
    utilisées
   Adapter les applications à leur fréquentation
   Tendances sur les applications
     • Temps de réponse, etc ...
On demand
   Historique d'utilisation des applications
   Facturation à la demande (GAE)
© OW2 Consortium 2010   http://jonas.ow2.org        15
Basé sur des intercepteurs
Intercepteurs à différents niveaux
   Activable/désactivable à la demande

EJB 3
  Invocation (Appel méthodes services métiers)
  Cycle de vie (Démarrage/Arrêt)

Requêtes HTTP
  Filtre Servlet

Accès JNDI
  Tout appel de méthode sur le contexte
   « new InitialContext() »
    • lookup, bind, etc.
© OW2 Consortium 2010   http://jonas.ow2.org      16
Architecture du système de collecte


       EasyBeans


       Tomcat
                                                            Audit console


       JNDI
                                                                     Audit log

       Système d'audit


                          Notifications
                              JMX
                                                     JConsole



  © OW2 Consortium 2010           http://jonas.ow2.org                           17
Données collectées [1/2]

EJB3
  Invocation
    • Nom du bean
    • Identité (nom + rôles)
    • Méthode appelée
        –@Local
        –@Remote
        –OnMessage
    • Taille des paramètres
    • Résultat
    • Durée de traitement
    • Exceptions
© OW2 Consortium 2010   http://jonas.ow2.org   18
Données collectées [2/2]
HTTP
   URL
   Encoding
   Client (protocole,hôte, port)
   SessionId
   Query
   Status HTTP
JNDI
   Méthode appelée sur le contexte
     • bind, lookup, etc ...
     • Paramètres (s'il y en a)
   Durée de l'appel

© OW2 Consortium 2010   http://jonas.ow2.org   19
Logger
Client des MBeans d'audit
  Collecte les données
  Stockage dans un fichier log
  Format lisible
Format fichier log
         [10/03/04 22:05:35] class org.ow2.util.auditreport.impl.InvocationAuditReport
           requestStart = 1267736735591573000
           requestStop = 1267736735591630000
           requestDuration = 0.057                                                     Durée de la requête
           businessMethod = getCalculator@Local                                        Méthode appelée
           BeanName = Calculator
           target = /easybeans/audit-sample.ear/audit-sample-ejb.jar/SessionFacade/getCalculator@Local
           paramSize = 5
           returnSize = 0
           freeMemoryBefore = 25623392
           totalMemoryBefore = 64126976
           freeMemoryAfter = 25617704
           totalMemoryAfter = 64126976
           sweepMarkTime = 873
           scavengeTime = 5170
           user = ANONYMOUS                                                            Identité
           roles = [JOnAS]
           requestTimeStamp = 1267736735580
           methodStackTrace = [java.lang.Thread.getStackTrace(Thread.java:1409) - ..... ]
           methodParameters = null
© OW2 Consortium 2010                        http://jonas.ow2.org
                                                                                       Paramétres    20
                                                                                   d'appel
Aperçu de l'outil




© OW2 Consortium 2010   http://jonas.ow2.org   21
Aperçu de l'outil




© OW2 Consortium 2010   http://jonas.ow2.org   22
Demo




© OW2 Consortium 2010   http://jonas.ow2.org   23
Demo

Explication de la démo
  Amélioration des performances d'une
   application
    • Découverte des anomalies
    • Résolution
    • Vérification avec la console d'audit




© OW2 Consortium 2010   http://jonas.ow2.org   24
Futur




© OW2 Consortium 2010   http://jonas.ow2.org   25
Futur

Outil livré avec JOnAS 5.2 M1
Futur :
   Supervision des services OSGi
     • Services qui arrivent
     • Liens entre composants
     • ...
   Supervision JPA
     • Cycle de vie des objets « Entity »
   Relevé de métriques supplémentaires
     • Requêtes SQL
         –Nombre de requêtes
         –Requêtes les plus longues
     • ...
© OW2 Consortium 2010   http://jonas.ow2.org   26
Q&A
                        Mathieu.Ancelin@serli.com
                         Florent.Benoit@bull.net




© OW2 Consortium 2010        http://jonas.ow2.org   27

Weitere ähnliche Inhalte

Was ist angesagt?

Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les basesAntoine Rey
 
Perfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui ramePerfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui ramebleporini
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application javaAntoine Rey
 

Was ist angesagt? (7)

Workshop Spring - Session 1 - L'offre Spring et les bases
Workshop Spring  - Session 1 - L'offre Spring et les basesWorkshop Spring  - Session 1 - L'offre Spring et les bases
Workshop Spring - Session 1 - L'offre Spring et les bases
 
Support NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDBSupport NodeJS avec TypeScript Express MongoDB
Support NodeJS avec TypeScript Express MongoDB
 
Support programmation orientée objet c# .net version f8
Support programmation orientée objet c#  .net version f8Support programmation orientée objet c#  .net version f8
Support programmation orientée objet c# .net version f8
 
Support de cours angular
Support de cours angularSupport de cours angular
Support de cours angular
 
Support de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfiSupport de cours entrepise java beans ejb m.youssfi
Support de cours entrepise java beans ejb m.youssfi
 
Perfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui ramePerfug Guide de survie du développeur dans une application Java qui rame
Perfug Guide de survie du développeur dans une application Java qui rame
 
Tester unitairement une application java
Tester unitairement une application javaTester unitairement une application java
Tester unitairement une application java
 

Andere mochten auch

Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2Catherine Nuel
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosAziz Rgd
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagioshindif
 
PFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquePFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquechammem
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatiqueHicham Ben
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskRaef Ghribi
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaNazih Heni
 
GLPI at RMLL 2010
GLPI at RMLL 2010GLPI at RMLL 2010
GLPI at RMLL 2010Nouh Walid
 
Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Nouh Walid
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatiqueHicham Ben
 
GLPI et FusionInventory, des solutions libres et innovantes
GLPI et FusionInventory, des solutions libres et innovantesGLPI et FusionInventory, des solutions libres et innovantes
GLPI et FusionInventory, des solutions libres et innovantesIgniteStrasbourg
 
Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL  Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL Hajar EL GUERI
 
Rapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokRapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokAbdessamad IDRISSI
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosErwan 'Labynocle' Ben Souiden
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueEric Maxime
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stageguesta3231e
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.pptMohamed Ben Bouzid
 

Andere mochten auch (20)

Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2Selfxl Project Solutions Linux Ow2
Selfxl Project Solutions Linux Ow2
 
Supervision de réseau informatique - Nagios
Supervision de réseau informatique - NagiosSupervision de réseau informatique - Nagios
Supervision de réseau informatique - Nagios
 
Rapport de stage nagios
Rapport de stage nagiosRapport de stage nagios
Rapport de stage nagios
 
PFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatiquePFE : ITIL - Gestion de parc informatique
PFE : ITIL - Gestion de parc informatique
 
Projet de fin d'etude sur le parc informatique
Projet  de fin d'etude sur le parc informatiqueProjet  de fin d'etude sur le parc informatique
Projet de fin d'etude sur le parc informatique
 
Presentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help deskPresentation pfe gestion parc informatique et help desk
Presentation pfe gestion parc informatique et help desk
 
Rapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédiaRapport de projet de fin d'étude licence informatique et multimédia
Rapport de projet de fin d'étude licence informatique et multimédia
 
GLPI at RMLL 2010
GLPI at RMLL 2010GLPI at RMLL 2010
GLPI at RMLL 2010
 
Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008Présentation OCS et GLPI aux Solutions Linux 2008
Présentation OCS et GLPI aux Solutions Linux 2008
 
Rapport Projet de fin d'etude sur le parc informatique
Rapport Projet  de fin d'etude sur le parc informatiqueRapport Projet  de fin d'etude sur le parc informatique
Rapport Projet de fin d'etude sur le parc informatique
 
GLPI et FusionInventory, des solutions libres et innovantes
GLPI et FusionInventory, des solutions libres et innovantesGLPI et FusionInventory, des solutions libres et innovantes
GLPI et FusionInventory, des solutions libres et innovantes
 
Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL  Les bonnes pratiques en informatique - Référentiel ITIL
Les bonnes pratiques en informatique - Référentiel ITIL
 
Gestion des incidents ITIL
Gestion des incidents ITILGestion des incidents ITIL
Gestion des incidents ITIL
 
Rapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwokRapprot de satge supervision de résau par EyesOfNetwok
Rapprot de satge supervision de résau par EyesOfNetwok
 
Cours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de NagiosCours - Supervision SysRes et Présentation de Nagios
Cours - Supervision SysRes et Présentation de Nagios
 
Rapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc InformatiqueRapport PFE: Gestion de Parc Informatique
Rapport PFE: Gestion de Parc Informatique
 
Soutenance De Stage
Soutenance De StageSoutenance De Stage
Soutenance De Stage
 
L'audit et la gestion des incidents
L'audit et la gestion des incidentsL'audit et la gestion des incidents
L'audit et la gestion des incidents
 
ITIL v3 : Présentation
ITIL v3 : PrésentationITIL v3 : Présentation
ITIL v3 : Présentation
 
présentation soutenance PFE.ppt
présentation soutenance PFE.pptprésentation soutenance PFE.ppt
présentation soutenance PFE.ppt
 

Ähnlich wie Audit Applications Javaee Solutions Linux Ow2

Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasMicrosoft
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiENSET, Université Hassan II Casablanca
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014Benoît de CHATEAUVIEUX
 
Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2OW2
 
Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2Catherine Nuel
 
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8DocDoku
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx FranceMarc Bojoly
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASGuillaume Sauthier
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)Aymeric Weinbach
 
Retours Devoxx France 2016
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016Antoine Rey
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?PALO IT
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...ENSET, Université Hassan II Casablanca
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?PALO IT
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesClément OUDOT
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...Wiiisdom
 

Ähnlich wie Audit Applications Javaee Solutions Linux Ow2 (20)

Java dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de JonasJava dans Windows Azure: l'exemple de Jonas
Java dans Windows Azure: l'exemple de Jonas
 
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfiJava entreprise edition et industrialisation du génie logiciel par m.youssfi
Java entreprise edition et industrialisation du génie logiciel par m.youssfi
 
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
"La Performance en Continue" à JMaghreb 3.0 - 05/11/2014
 
Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2
 
Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2Jonas5 Serveur Applications Solutions Linux Ow2
Jonas5 Serveur Applications Solutions Linux Ow2
 
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8
Les Z'ApéroTech Toulouse #2 - Présentation des nouveautés de JakartaEE 8
 
Perf university
Perf universityPerf university
Perf university
 
Université de la performance - Devoxx France
Université de la performance - Devoxx FranceUniversité de la performance - Devoxx France
Université de la performance - Devoxx France
 
Java dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnASJava dans Windows Azure, l'exemple de JOnAS
Java dans Windows Azure, l'exemple de JOnAS
 
Sql azure performance et montee en charge (1)
Sql azure   performance et montee en charge (1)Sql azure   performance et montee en charge (1)
Sql azure performance et montee en charge (1)
 
Retours Devoxx France 2016
Retours Devoxx France 2016Retours Devoxx France 2016
Retours Devoxx France 2016
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?
 
Introduction à node.js
Introduction à node.js Introduction à node.js
Introduction à node.js
 
spring.pdf
spring.pdfspring.pdf
spring.pdf
 
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...Support de cours EJB 3 version complète Par Mr  Youssfi, ENSET, Université Ha...
Support de cours EJB 3 version complète Par Mr Youssfi, ENSET, Université Ha...
 
Et pourquoi pas JEE ?
Et pourquoi pas JEE ?Et pourquoi pas JEE ?
Et pourquoi pas JEE ?
 
Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013Presentation Zabbix en Français du 6 Juin 2013
Presentation Zabbix en Français du 6 Juin 2013
 
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemplesCAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
CAS, OpenID, Shibboleth, SAML : concepts, différences et exemples
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
10 astuces que vous pouvez faire dès maintenant pour améliorer la performance...
 

Mehr von Catherine Nuel

Accord Project Solutions Linux Ow2
Accord Project Solutions Linux Ow2Accord Project Solutions Linux Ow2
Accord Project Solutions Linux Ow2Catherine Nuel
 
Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Catherine Nuel
 
OW2 Talend Data Integration Linuxtag09 (English)
OW2 Talend Data Integration Linuxtag09 (English)OW2 Talend Data Integration Linuxtag09 (English)
OW2 Talend Data Integration Linuxtag09 (English)Catherine Nuel
 
OW2 Talend Data Integration Linuxtag09 (German)
OW2 Talend Data Integration Linuxtag09 (German)OW2 Talend Data Integration Linuxtag09 (German)
OW2 Talend Data Integration Linuxtag09 (German)Catherine Nuel
 
OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09Catherine Nuel
 
OW2 JOnAS Java EE Server Platform Linuxtag09
OW2 JOnAS Java EE Server Platform Linuxtag09OW2 JOnAS Java EE Server Platform Linuxtag09
OW2 JOnAS Java EE Server Platform Linuxtag09Catherine Nuel
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09Catherine Nuel
 
OW2 BonitaSoft BPM Linuxtag09
OW2 BonitaSoft BPM Linuxtag09OW2 BonitaSoft BPM Linuxtag09
OW2 BonitaSoft BPM Linuxtag09Catherine Nuel
 

Mehr von Catherine Nuel (8)

Accord Project Solutions Linux Ow2
Accord Project Solutions Linux Ow2Accord Project Solutions Linux Ow2
Accord Project Solutions Linux Ow2
 
Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2Talend Petals Link Solutions Linux Ow2
Talend Petals Link Solutions Linux Ow2
 
OW2 Talend Data Integration Linuxtag09 (English)
OW2 Talend Data Integration Linuxtag09 (English)OW2 Talend Data Integration Linuxtag09 (English)
OW2 Talend Data Integration Linuxtag09 (English)
 
OW2 Talend Data Integration Linuxtag09 (German)
OW2 Talend Data Integration Linuxtag09 (German)OW2 Talend Data Integration Linuxtag09 (German)
OW2 Talend Data Integration Linuxtag09 (German)
 
OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09OW2 Petals Dragon SOA Linuxtag09
OW2 Petals Dragon SOA Linuxtag09
 
OW2 JOnAS Java EE Server Platform Linuxtag09
OW2 JOnAS Java EE Server Platform Linuxtag09OW2 JOnAS Java EE Server Platform Linuxtag09
OW2 JOnAS Java EE Server Platform Linuxtag09
 
OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09OW2 Exo Platform Open Social Portal Linuxtag09
OW2 Exo Platform Open Social Portal Linuxtag09
 
OW2 BonitaSoft BPM Linuxtag09
OW2 BonitaSoft BPM Linuxtag09OW2 BonitaSoft BPM Linuxtag09
OW2 BonitaSoft BPM Linuxtag09
 

Audit Applications Javaee Solutions Linux Ow2

  • 1. Outils d'audit et diagnostic d'applications Java EE avec JOnAS Mathieu.Ancelin@serli.com 18 Mars 2010 Florent.Benoit@bull.net
  • 2. Plan Contexte Outil de diagnostic Outil d'audit Démo Futur © OW2 Consortium 2010 http://jonas.ow2.org 2
  • 3. Contexte © OW2 Consortium 2010 http://jonas.ow2.org 3
  • 4. Pourquoi ? Standards Java EE  Assurent la portabilité d'une application  Rien sur la partie performance Robustesse d'une application ?  On peut coder une application Java EE sans que celle-ci soit robuste Trouver les problèmes de performances ?  Pas toujours évident avec les appels imbriqués entre composants. Traçabilité  Avoir une trace de toutes les actions effectuées « Mesurabilité » des services  Par exemple, connaître la consommation mémoire liée à une requête © OW2 Consortium 2010 http://jonas.ow2.org 4
  • 5. Outil de diagnostic Fuite de connexions JDBC © OW2 Consortium 2010 http://jonas.ow2.org 5
  • 6. « pool » de connexions JDBC Limiter le nombre de connexions vers la base Optimiser le temps de fourniture des connexions datasource.getConnection(); connection.createStatement(); .... .... connection.close(); Pool DataSource © OW2 Consortium 2010 http://jonas.ow2.org 6
  • 7. Oubli de l'appel à connection.close() Connexions en cours d'utilisation ou non fermées Pool DataSource Pool Vide Problème : plus de connexions disponibles pour les nouveaux clients  → Connexions jamais fermées • → non retour dans le pool  → Mise en attente pour les autres clients • Pas de connexions libres dans le pool ! © OW2 Consortium 2010 http://jonas.ow2.org 7
  • 8. Gestion de l'oubli de fermeture ? Éviter la saturation du pool en production  Fermetures automatiques par JOnAS • A la fin d'un appel de méthode (stateless / requête HTTP), remove() sur stateful.  Durée de vie des connexions JDBC • Si aucune action n'est effectuée sur une connexion pendant un laps de temps, celle-ci est remise dans le pool Ces solutions ne sont que des rustines  But : corriger le problème à la source • Aide à la correction via la console de JOnAS –Pister l'origine du problème © OW2 Consortium 2010 http://jonas.ow2.org 8
  • 9. Servlet utilisant JDBC 55 protected void doGet(....) { 56 response.setContentType("text/html"); 57 PrintWriter out = response.getWriter(); 58 out.println("<html><body>"); 59 60 DataSource ds = null; 61 try { 62 ds = (DataSource) new InitialContext().lookup("jdbc_1"); 63 ds.getConnection(); 64 } catch (NamingException e) { 65 e.printStackTrace(); 66 } catch (SQLException e) { 67 e.printStackTrace(); 68 } finally { 69 out.println("</body></html>"); 70 out.close(); 71 } 72 73 } © OW2 Consortium 2010 http://jonas.ow2.org 9
  • 10. Capture d'écran console JOnAS Admin Ligne à analyser © OW2 Consortium 2010 http://jonas.ow2.org 10
  • 11. Servlet avec l'erreur 55 protected void doGet(....) { 56 response.setContentType("text/html"); 57 PrintWriter out = response.getWriter(); 58 out.println("<html><body>"); 59 60 DataSource ds = null; 61 try { 62 ds = (DataSource) new InitialContext().lookup("jdbc_1"); 63 ds.getConnection(); 64 } catch (NamingException e) { 65 e.printStackTrace(); 66 } catch (SQLException e) { 67 e.printStackTrace(); 68 } finally { 69 out.println("</body></html>"); 70 out.close(); 71 } 72 73 } © OW2 Consortium 2010 http://jonas.ow2.org 11
  • 12. Outil de diagnostic Affichage/Supervision des threads © OW2 Consortium 2010 http://jonas.ow2.org 12
  • 13. Information sur les threads JVM © OW2 Consortium 2010 http://jonas.ow2.org 13
  • 14. Outil d'audit © OW2 Consortium 2010 http://jonas.ow2.org 14
  • 15. Objectifs du système d'audit Outil de développement  Mise au point des applications  Repérer les points chauds et les goulots d'étranglement  Amélioration des performances Fréquentation des applications  Statistiques sur les fonctionnalités les plus utilisées  Adapter les applications à leur fréquentation  Tendances sur les applications • Temps de réponse, etc ... On demand  Historique d'utilisation des applications  Facturation à la demande (GAE) © OW2 Consortium 2010 http://jonas.ow2.org 15
  • 16. Basé sur des intercepteurs Intercepteurs à différents niveaux  Activable/désactivable à la demande EJB 3  Invocation (Appel méthodes services métiers)  Cycle de vie (Démarrage/Arrêt) Requêtes HTTP  Filtre Servlet Accès JNDI  Tout appel de méthode sur le contexte « new InitialContext() » • lookup, bind, etc. © OW2 Consortium 2010 http://jonas.ow2.org 16
  • 17. Architecture du système de collecte EasyBeans Tomcat Audit console JNDI Audit log Système d'audit Notifications JMX JConsole © OW2 Consortium 2010 http://jonas.ow2.org 17
  • 18. Données collectées [1/2] EJB3  Invocation • Nom du bean • Identité (nom + rôles) • Méthode appelée –@Local –@Remote –OnMessage • Taille des paramètres • Résultat • Durée de traitement • Exceptions © OW2 Consortium 2010 http://jonas.ow2.org 18
  • 19. Données collectées [2/2] HTTP  URL  Encoding  Client (protocole,hôte, port)  SessionId  Query  Status HTTP JNDI  Méthode appelée sur le contexte • bind, lookup, etc ... • Paramètres (s'il y en a)  Durée de l'appel © OW2 Consortium 2010 http://jonas.ow2.org 19
  • 20. Logger Client des MBeans d'audit  Collecte les données  Stockage dans un fichier log  Format lisible Format fichier log [10/03/04 22:05:35] class org.ow2.util.auditreport.impl.InvocationAuditReport requestStart = 1267736735591573000 requestStop = 1267736735591630000 requestDuration = 0.057 Durée de la requête businessMethod = getCalculator@Local Méthode appelée BeanName = Calculator target = /easybeans/audit-sample.ear/audit-sample-ejb.jar/SessionFacade/getCalculator@Local paramSize = 5 returnSize = 0 freeMemoryBefore = 25623392 totalMemoryBefore = 64126976 freeMemoryAfter = 25617704 totalMemoryAfter = 64126976 sweepMarkTime = 873 scavengeTime = 5170 user = ANONYMOUS Identité roles = [JOnAS] requestTimeStamp = 1267736735580 methodStackTrace = [java.lang.Thread.getStackTrace(Thread.java:1409) - ..... ] methodParameters = null © OW2 Consortium 2010 http://jonas.ow2.org Paramétres 20 d'appel
  • 21. Aperçu de l'outil © OW2 Consortium 2010 http://jonas.ow2.org 21
  • 22. Aperçu de l'outil © OW2 Consortium 2010 http://jonas.ow2.org 22
  • 23. Demo © OW2 Consortium 2010 http://jonas.ow2.org 23
  • 24. Demo Explication de la démo  Amélioration des performances d'une application • Découverte des anomalies • Résolution • Vérification avec la console d'audit © OW2 Consortium 2010 http://jonas.ow2.org 24
  • 25. Futur © OW2 Consortium 2010 http://jonas.ow2.org 25
  • 26. Futur Outil livré avec JOnAS 5.2 M1 Futur :  Supervision des services OSGi • Services qui arrivent • Liens entre composants • ...  Supervision JPA • Cycle de vie des objets « Entity »  Relevé de métriques supplémentaires • Requêtes SQL –Nombre de requêtes –Requêtes les plus longues • ... © OW2 Consortium 2010 http://jonas.ow2.org 26
  • 27. Q&A Mathieu.Ancelin@serli.com Florent.Benoit@bull.net © OW2 Consortium 2010 http://jonas.ow2.org 27