Outils d'audit et diagnostic d'applications Java EE avec JOnAS



Documents pareils
JOnAS Day 5.1. Clustering

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

Connexion à SQL Server 2005 à partir du serveur d application SJSAS 9 Utilisation d une interface JDBC

Serveur d'application à la juste taille

J2EE - Introduction. Développement web - Java. Plan du chapitre

JOnAS 5. Serveur d application d

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Compte Rendu d intégration d application

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

1. Installation d'un serveur d'application JBoss:

Etude de l ENT de l Université de Paris 5. Mise en place d outils de suivi de la charge de l ENT (monitoring)

Refonte front-office / back-office - Architecture & Conception -

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Formation en Logiciels Libres. Fiche d inscription

Auto-évaluation Aperçu de l architecture Java EE

Rapport de projet de fin d études

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

JOnAS Day 5.1. Outils de développements

Java Naming and Directory Interface

J2EE. Java2 Enterprise Edition. Pierre Yves Gibello Mise à jour : 30 Septembre 2004

Environnements de Développement

Introduction à JDBC. Accès aux bases de données en Java

Documentation de la plate forme JOnAS

RENDRE VOS APPLICATIONS JAVA PLUS EFFICACES Ce qu'il faut savoir

Composants logiciels Exemples : Java Beans, Enterprise Java Beans

Mise en œuvre des serveurs d application

Création d une application JEE

RMI. Remote Method Invocation: permet d'invoquer des méthodes d'objets distants.

JOnAS 5 Enterprise OSGi javaee compliant

Offre LinShare. Présentation. Février Partage de fichiers sécurisé. LinShare 1.5

IBM Rational Application Developer pour WebSphere Software V8.5 accélère le développement d'applications de haute qualité.

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Java EE. Java Enterprise Edition. Pierre-Yves Gibello - pierreyves.gibello@experlog.com (Mise à jour : Septembre 2011)

Nouvelles Plateformes Technologiques

Architecture Orientée Service, JSON et API REST

Documentation de la plate forme JOnAS. Frederic Maistre

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Accès aux bases de données

Application web de gestion de comptes en banques

Pour plus de détails concernant le protocole TCP conférez vous à la présentation des protocoles Internet enseignée pendant.

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

IBM WebSphere Application Server 5.0 : Administration avancée

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Architecture et Extensions d ArcGIS Server

Remote Method Invocation (RMI)

Réalisation : Encadrés par : BEN GHORBEL Mohamed Zied OUESLATI Cherif. Mr. ROMDHANI Mohamed

GESTION DE LA PERFORMANCE. Albert Amar Avant-vente Middleware

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

Augmenter la disponibilité des applications JEE grâce au clustering : Le projet open source JShaft

EJB. Karim Bouzoubaa Issam Kabbaj

Introduction à la plateforme J2EE

IBM DB2 Alphablox. d administration GC

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

JASMINe. Outils de gestion et supervision d'infrastructure intergicielle.

Pentaho. présentation

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

Formations Cours du soir Coaching Stage intensif. Brochure Rencontrez-nous au salon «Solutions Linux» 2010, stand B14

GWT à l'épreuve du feu. by Sami Jaber (DNG Consulting)

Technologies Web, Serveurs Web et d'applications

TP JEE Développement Web en Java. Dans ce TP nous commencerons la programmation JEE par le premier niveau d une application JEE : l application web.

EXA1415 : Annotations

Hébergement de sites Web

Le passage à l échelle de serveur J2EE : le cas des EJB

Cours en ligne Développement Java pour le web

TP Composants Java ME - Java EE. Le serveur GereCompteBancaireServlet

Le développement d applications Web

Serveurs et applications, Serveurs Web / Serveurs JEE

Catalogue Formation «Vanilla»

SCOM 2012 (System Center Operations Manager) De l'installation à l'exploitation, mise en oeuvre et bonnes pratiques

2 Chapitre 1 Introduction

LemonLDAP::NG. LemonLDAP::NG 1.2. Clément OUDOT RMLL 9 juillet 2012

PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions

Etude de l ENT de l Université de Paris 5. Recommandations des experts suite à la journée du 29 octobre 2009

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Présentation du cours. Sécurité dans Java EE. Plan (1/2) Plan (2/2) Généralités sur la sécurité

Java Enterprise Edition

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

Bien programmer. en Java ex. couleur. Avec plus de 50 études de cas et des comparaisons avec C++ et C# Emmanuel Puybaret.

Première coupe : Introduction à la plateforme Java EE JAVA JAVA. Introduction à la plateforme Java EE. Introduction à la plateforme Java EE

Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC Francisco. Juin 2013 LEXFO 1

Messagerie asynchrone et Services Web

Développement, déploiement et sécurisation d'applications JEE

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Plan. Department of Informatics

RMI le langage Java XII-1 JMF

JOnAS & EasyBeans EMN 29 Novembre 2007

Architecture applicative et Cartographie

Serveur d'archivage 2007 Installation et utilisation de la BD exist

Infostructures Performances Management La sécurité, la robustesse er la performance de vos infrastructures de données

Annexe 5. Kaspersky Security For SharePoint Servers. Consulting Team

Pratique de la prémétrologie à Orange Labs à travers l'utilisation de la plate forme de test en charge CLIF

contact@nqicorp.com - Web :

Table des matières 1. Avant-propos. Chapitre 1 Virtualisation du poste de travail

Base de données MySQL

Teste et mesure vos réseaux et vos applicatifs en toute indépendance

Groupe Eyrolles, 2005, ISBN :

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Transcription:

Outils d'audit et diagnostic d'applications Java EE avec JOnAS 18 Mars 2010 Mathieu.Ancelin@serli.com Florent.Benoit@bull.net

Plan Contexte Outil de diagnostic Outil d'audit Démo Futur 2

Contexte 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 4

Outil de diagnostic Fuite de connexions JDBC 5

«pool» de connexions JDBC Limiter le nombre de connexions vers la base Optimiser le temps de fourniture des connexions Pool DataSource datasource.getconnection(); connection.createstatement();...... connection.close(); 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! 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 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 } 9

Capture d'écran console JOnAS Admin Ligne à analyser 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 } 11

Outil de diagnostic Affichage/Supervision des threads 12

Information sur les threads JVM 13

Outil d'audit 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) 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. 16

Architecture du système de collecte EasyBeans Tomcat Audit console JNDI Audit log Système d'audit Notifications JMX JConsole 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 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 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 businessmethod = getcalculator@local 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 roles = [JOnAS] requesttimestamp = 1267736735580 methodstacktrace = [java.lang.thread.getstacktrace(thread.java:1409) -... ] methodparameters = null Durée de la requête Méthode appelée Identité Paramétres d'appel 20

Aperçu de l'outil 21

Aperçu de l'outil 22

Demo 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 24

Futur 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... 26

Q&A Mathieu.Ancelin@serli.com Florent.Benoit@bull.net 27