SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
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

Más contenido relacionado

La actualidad más candente

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
 

La actualidad más candente (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
 

Destacado

La suisse en_24_photos
La suisse en_24_photosLa suisse en_24_photos
La suisse en_24_photosfilipj2000
 
Santorin l'ile magique
Santorin l'ile magiqueSantorin l'ile magique
Santorin l'ile magiquefilipj2000
 
Le pouvoir de l'information dans votre organisation
Le pouvoir de l'information dans votre organisationLe pouvoir de l'information dans votre organisation
Le pouvoir de l'information dans votre organisationJulie Rodrigue
 
Info sacu 6
Info sacu 6Info sacu 6
Info sacu 6Sacu Uhu
 
Instrumentosevaluacion 110803110355-phpapp01
Instrumentosevaluacion 110803110355-phpapp01Instrumentosevaluacion 110803110355-phpapp01
Instrumentosevaluacion 110803110355-phpapp01María Valbuena
 
Produccion de laboratorio de informatica
Produccion de laboratorio de informaticaProduccion de laboratorio de informatica
Produccion de laboratorio de informaticadiamar_19
 
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01María Valbuena
 
Livres... une question de support !
Livres... une question de support !Livres... une question de support !
Livres... une question de support !Didier Guilbaud Pro
 
Test slideshare
Test slideshareTest slideshare
Test slidesharemilkylove
 
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVAS
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVASEVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVAS
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVASyare18abarca
 
Asia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaAsia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaSokmean
 
2lesionesdeportivas 140412091633-phpapp01
2lesionesdeportivas 140412091633-phpapp012lesionesdeportivas 140412091633-phpapp01
2lesionesdeportivas 140412091633-phpapp01mariateresagarcia2
 
Les raisons d'un réseau : les BMA en Touraine
Les raisons d'un réseau : les BMA en TouraineLes raisons d'un réseau : les BMA en Touraine
Les raisons d'un réseau : les BMA en TouraineDidier Guilbaud Pro
 

Destacado (20)

Logica
LogicaLogica
Logica
 
La suisse en_24_photos
La suisse en_24_photosLa suisse en_24_photos
La suisse en_24_photos
 
Santorin l'ile magique
Santorin l'ile magiqueSantorin l'ile magique
Santorin l'ile magique
 
Pixdaustres
PixdaustresPixdaustres
Pixdaustres
 
Le pouvoir de l'information dans votre organisation
Le pouvoir de l'information dans votre organisationLe pouvoir de l'information dans votre organisation
Le pouvoir de l'information dans votre organisation
 
Info sacu 6
Info sacu 6Info sacu 6
Info sacu 6
 
Instrumentosevaluacion 110803110355-phpapp01
Instrumentosevaluacion 110803110355-phpapp01Instrumentosevaluacion 110803110355-phpapp01
Instrumentosevaluacion 110803110355-phpapp01
 
Produccion de laboratorio de informatica
Produccion de laboratorio de informaticaProduccion de laboratorio de informatica
Produccion de laboratorio de informatica
 
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01
Mtodosdeevaluacin tcnicaseinstrumentos-101128061851-phpapp01
 
Uba ar2012 fr
Uba ar2012 frUba ar2012 fr
Uba ar2012 fr
 
Livres... une question de support !
Livres... une question de support !Livres... une question de support !
Livres... une question de support !
 
Test slideshare
Test slideshareTest slideshare
Test slideshare
 
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVAS
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVASEVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVAS
EVALUACIÓN DE LAS HERRAMIENTAS DIGITALES Y EDUCATIVAS
 
4
44
4
 
Ana Lilia_PLE
Ana Lilia_PLEAna Lilia_PLE
Ana Lilia_PLE
 
Asia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in IndiaAsia Pacific Breweries Limited in India
Asia Pacific Breweries Limited in India
 
2lesionesdeportivas 140412091633-phpapp01
2lesionesdeportivas 140412091633-phpapp012lesionesdeportivas 140412091633-phpapp01
2lesionesdeportivas 140412091633-phpapp01
 
Henry perdomo 2
Henry perdomo  2Henry perdomo  2
Henry perdomo 2
 
Les raisons d'un réseau : les BMA en Touraine
Les raisons d'un réseau : les BMA en TouraineLes raisons d'un réseau : les BMA en Touraine
Les raisons d'un réseau : les BMA en Touraine
 
Polynesie e
Polynesie ePolynesie e
Polynesie e
 

Similar a 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
 

Similar a 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...
 

Más de OW2

OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2
 
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...OW2
 
GLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudGLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudOW2
 
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...OW2
 
FusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceFusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceOW2
 
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2
 
SFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationSFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationOW2
 
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...OW2
 
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...OW2
 
Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020OW2
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020OW2
 
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...OW2
 
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020OW2
 
Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020OW2
 
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020OW2
 
Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020OW2
 
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020OW2
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...OW2
 
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...OW2
 
Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020OW2
 

Más de OW2 (20)

OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in RomaOW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
OW2 and RIOS teaming up to boost the open source impact, Nov. 2022 in Roma
 
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
The Open Source Good Governance Initiative presented at RIOS OS Week, Nov. 20...
 
GLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloudGLPi v.10, les fonctionnalités principales et l'offre cloud
GLPi v.10, les fonctionnalités principales et l'offre cloud
 
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
Centreon: superviser le Cloud et le Legacy à partir d'une même plateforme, po...
 
FusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open sourceFusionIAM : la gestion des identités et des accés open source
FusionIAM : la gestion des identités et des accés open source
 
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
OW2 Association Européenne aux racines grenobloises, transformer l'industrie ...
 
SFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the EquationSFScon'20 Bringing the User into the Equation
SFScon'20 Bringing the User into the Equation
 
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...Towards a sustainable solution to open source sustainability, OW2online20, Ju...
Towards a sustainable solution to open source sustainability, OW2online20, Ju...
 
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
Advanced proactive and polymorphing cloud application adaptation with MORPHEM...
 
Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020Open Source governance and the Eclipse Foundation, OW2online, June 2020
Open Source governance and the Eclipse Foundation, OW2online, June 2020
 
Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020Open source contribution policies, OW2online, June 2020
Open source contribution policies, OW2online, June 2020
 
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
Software development at scale, pandemic lockdown and oss ecosystems, OW2onlin...
 
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
Overview of the OpenChain Reference Tooling Work Group, OW2online20, June 2020
 
Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020Open Source Compliance at Orange, OW2online, June 2020
Open Source Compliance at Orange, OW2online, June 2020
 
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
Ideas, methods and tools for OSS Compliance assessment, OW2online, June 2020
 
Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020Intelligent package management with FASTEN, OW2online, June 2020
Intelligent package management with FASTEN, OW2online, June 2020
 
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
DECODER, a Smarter Environment for DevOps Teams , OW2online, June 2020
 
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
Enabling DevOps for IoT software development, powered by Open Source, OW2onli...
 
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
Upcoming Challenges in Artificial Intelligence Research and Development, OW2o...
 
Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020Cacti and Big Data at Orange France, OW2online, June 2020
Cacti and Big Data at Orange France, OW2online, June 2020
 

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