Notes de version de Sun Identity Manager 8.1

Travailler avec le profileur d'Identity Manager

Identity Manager offre un utilitaire profileur pour vous aider à rechercher et corriger les problèmes de performance dans les formulaires, Java, les règles, les flux de travaux et XPRESS dans votre déploiement.

Les formulaires, Java, les règles, les flux de travaux et XPRESS peuvent tous causer des problèmes de performance et d'échelle. Le profileur estime le temps passé dans ces différentes zones, ce qui vous permet de déterminer si ces formulaires, Java, règles, flux de travaux ou objets XPRESS ont un impact sur les problèmes de performance et d'échelle et, le cas échéant, quelles sont les parties de ces objets à l'origine des problèmes.

Cette section explique l'utilisation du profileur d'Identity Manager et fournit un didacticiel pour vous aider à apprendre à dépanner les problèmes de performance de votre déploiement.

Les informations sont organisées dans les rubriques suivantes :


Remarque –

Le profileur d'Identity Manager est uniquement pris en charge sur la version 7.1 Update 1 et les versions ultérieures.


Présentation

Cette section présente les caractéristiques et les fonctionnalités du profileur d'Identity Manager : Les informations sont organisées comme suit :

Principales nouveautés

Vous pouvez utiliser le profileur pour :

Mode de localisation et de gestion de la source par le profileur

Cette section décrit la façon dont le profileur recherche et gère la source pour les objets suivants d'Identity Manager :


Astuce –

Dans l'affichage Call Tree ou Hotspots, vous pouvez double-cliquer sur tout nœud correspondant à une méthode Java, un flux de travaux, un formulaire, une règle ou XPRESS pour afficher la source de ce nœud.


Pour les objets formulaires, règles, flux de travaux et XPRESS

Lorsque vous prenez un instantané avec le profileur, le serveur évalue l'ensemble des données de profilage et détecte les sources dont dépendent les données. Le serveur extrait ensuite toutes ces sources du référentiel et les inclut dans l'instantané. Par conséquent, vous pouvez être sûr que les objets d'Identity Manager affichés dans l'instantané reflètent avec précision le point auquel l'instantané a été capturé.

Ce processus augmente la taille de l'instantané mais la taille de la source n'est en réalité qu'une fraction relativement petite de la taille totale. Résultat, vous pouvez envoyer un instantané au support technique Sun sans devoir envoyer vos fichiers sources séparément.

Pour la source Java

Lorsque vous prenez un instantané d'une source Java, le client télécharge l'instantané puis l'examine pour capturer toutes les sources Java référencées depuis le projet. Lorsque vous enregistrez l'instantané, le client compresse les sources et les joint à la fin de l'instantané.

Ensuite, lorsque vous affichez l'instantané et allez à la source Java, le client commence par contrôler le contenu de l'instantané. Si le client n'y trouve pas de contenu, il contrôle le contenu du projet. Ce processus vous permet d'envoyer un instantané contenant des données de profilage provenant à la fois de votre code Java personnalisé et du code d'Identity Manager.


Remarque –

Dans un instantané de source Java, ne partez pas du principe que la source est actualisée sur le serveur ou toujours disponible.


Remarques sur les statistiques

Les sections suivantes contiennent des informations dont il convient de tenir compte lors de l'évaluation des résultats fournis par le profileur :

Statistiques de self time

Pour calculer les statistiques de self time d'un nœud racine, le profileur soustrait les temps de tous les nœuds enfants du temps total de ce nœud racine.

Par conséquent, le temps d'un nœud enfant non instrumenté se reflète dans le self time du nœud racine. Si le self time d'un nœud racine est important, il convient d'enquêter pour en connaître la raison. Les méthodes instrumentées peuvent ne pas être adaptées, ce qui peut vous amener à ne pas chercher au bon endroit.

Par exemple, partez de l'hypothèse qu'une méthode A appelle une méthode B.

La méthode A a un temps total de 10 secondes (le temps total inclut l'appel à B) et l'appel à B prend un temps total de 10 secondes.

Si à la fois A et B sont instrumentées, la pile d'appels reflète ces informations. Vous verrez que A aura un self time total de 0 secondes et B un self time de 10 secondes (10 secondes ont réellement été utilisées dans B). Si toutefois B n'est pas instrumenté, vous ne verrez que l'appel à A prend 10 secondes et que le self time de A est de 10 secondes. Vous assumerez donc que le problème est directement lié à A et non pas à B.

En particulier, vous pourrez remarquer de longs self times sur les JSP pendant leur compilation initiale. Si vous réinitialisez les résultats recueillis puis réaffichez la page, la valeur de self time sera bien inférieure.

Appels du constructeur

Compte tenu de limites inhérentes à la stratégie d'instrumentation de Java, les appels initiaux à this() ou super() apparaîtront comme un sibling à l'appel du constructeur plutôt que comme un enfant. Observez l'exemple suivant :


class A
{
   public A()
   {
      this(0);
   }
   public A(int i)
   {
   }
}

and:

class B
{
   public static void test()
   {
      new A();
   }
}
The call tree will look like this:
B.test()
   -A.<init>(int)
   -A.<init>()
Rather than this:
B.test()
   -A.<init>()
      -A.<init>(int)

Threads de démons

Ne vous laissez pas duper par l'apparente grande quantité de temps passée dans un nombre de threads de démons d'Identity Manager tels que ReconTask.WorkerThread.run() ou TaskThread.WorkerThread.run(). La plupart de ce temps s'écoule en état de sommeil dans l'attente d'événements. Vous devez enquêter sur ces traces pour connaître le temps réellement consacré au traitement d'un événement.

Démarrage

Cette section explique comment démarrer le profileur et comment fonctionne son interface graphique. Ces informations sont organisées comme suit :

Avant de commencer

Le profileur consommant énormément de mémoire, vous devez augmenter la mémoire pour à la fois le serveur et la machine virtuelle Java (JVM) Netbeans.

    Pour augmenter la mémoire du serveur :

  1. Ouvrez la fenêtre Netbeans et sélectionnez l'onglet Runtime (Exécution).

  2. Développez le nœud Serveurs, cliquez avec le bouton droit de la souris sur Bundled Tomcat ( (Tomcat fourni en standard) et choisissez Propriétés dans le menu.

  3. Lorsque la boîte de dialogue Server Manager (Gestionnaire de serveurs) s'affiche, désélectionnez la case Enable HTTP Monitor (Activer le moniteur HTTP) sur l'onglet Connexion.

  4. Sélectionnez l'onglet Platform (Plate-forme), définissez VM Options (Options VM) sur -Xmx1024M, puis cliquez sur Close (Fermer).

    Pour augmenter la mémoire de la JVM Netbeans :

  1. Ouvrez le fichier rép-installation-netbeans\etc\netbeans.conf et localisez la ligne suivante :

    netbeans_default_options="-J-Xms32m -J-Xmx ...

  2. Remplacez la valeur -J-Xmx par -J-Xmx1024M.

  3. Enregistrez puis fermez le fichier.

Ceci fait, vous pouvez démarrer le profileur comme décrit dans la section suivante.

Démarrage du profileur

Vous pouvez utiliser au choix l'une des méthodes suivantes pour démarrer le profileur depuis la fenêtre Identity Manager IDE :


Remarque –

L'icône Start Identity Manager Profiler on Main Project est activée lorsque le projet Identity Manager principal est de la version 7.1 Update 1 ou d'une version ultérieure.


Lorsque vous démarrez le profileur, la boîte de dialogue Profiler Options (Options du profileur) s'affiche vous permettant de spécifier les options de profilage que vous voulez utiliser. Les instructions à suivre pour la configuration de ces options figurent dans Spécification des options du profileur.

Utilisation du profileur

Cette section décrit les fonctionnalités de l'interface graphique du profileur et leur utilisation. Les informations sont organisées comme suit :

Spécification des options du profileur

La boîte de dialogue Profiler Options (Options du profileur) comprend les onglets suivants:

Utilisez les options de ces onglets pour indiquer les objets à profiler et les éléments à afficher dans le profil.

Après la spécification des options du profileur, cliquez sur OK pour démarrer le profileur. Selon la configuration de votre projet, le profileur effectuera l'une ou l'autre des séries d'opérations suivantes :


Remarque –

Vous pouvez sélectionner IdM -> Set Identity Manager Instance (Définir l'instance d'Identity Manager) pour contrôler l'action de l'instance d'Identity Manager pour le projet.


Mode (Mode)

L'onglet Mode comporte les options suivantes :

IDM Object Filters (Filtres à objets IDM)

L'onglet IDM Object Filters (Filtres à objets IDM) comporte les options suivantes :

Java Filters (Filtres Java)

Sélectionnez l'onglet Java Filters (Filtres Java) pour

Les filtres Java sont formulés en termes de modèles de méthode et sont exprimés sous la forme de modèles qui incluent ou excluent les éléments sur la base du nom de méthode canonique. Lorsqu'un nom de méthode canonique est du type :

nom-classe-complet.nom-méthode( type-paramètre-1, type-paramètre-2, ... )


Remarque –

Pour les constructeurs, nom-méthode est <init>.


Voici quelques exemples :


Remarque –

Ces deux derniers exemples sont en fait équivalents car les filtres ne sont appliqués qu'aux classes personnalisées et aux classes d'Identity Manager.


Si nécessaire, vous pouvez instrumenter d'autres JAR en modifiant comme approprié les lignes suivantes dans build.xml. Par exemple :


<instrument todir="${lighthouse-dir-profiler}/WEB-INF"
verbose="${instrumentor.verbose}" includeMethods="${profiler.includes}"
excludeMethods="${profiler.excludes}">
           <fileset dir="${lighthouse-dir}/WEB-INF">
               <include name="lib/idm*.jar"/>
               <include name="classes/**/*.class"/>
           </fileset>
</instrument>

Par défaut, la configuration inclut toutes vos classes personnalisées et la plupart des classes d'Identity Manager . Un nombre de classes d'Identity Manager sont obligatoirement exclues car les activer signifierait interrompre le profileur.

Par exemple, les classes provenant des moteurs de flux de travaux, de formulaires et XPRESS sont exclues, sinon le profileur produirait un instantané incompréhensible lors du profilage des objets Java et Identity Manager.

Vous remarquerez que les filtres Java assurent un filtrage bien plus fin que les filtres à objets IDM. L'instrumentation Java allonge considérablement le temps d'exécution ce qui dévie drastiquement les résultats de profilage. Les objets d'Identity Manager étant interprétés plutôt que compilés, le temps d'instrumentation est négligeable. Ainsi, à titre d'exemple, il n'y a pratiquement aucune raison d'exclure le flux de travaux A et d'inclure le flux de travaux B, et ainsi de suite.


Remarque –

Vous ne pouvez pas modifier les filtres Java pendant l'exécution du profileur. Vous devez arrêter le profileur avant de changer les filtres Java.


Miscellaneous (Divers)

L'onglet Miscellaneous (Divers) comporte les options suivantes :

Travailler avec l'affichage du profileur d'IDM

L'affichage du profileur d'IDM se compose des zones suivantes :

Zone du projet courant

La zone Current Project (Projet courant) se compose d'un menu déroulant qui répertorie tous vos projets courants. Ce menu vous permet de sélectionner le projet à profiler.

Zone des contrôles

La zone Controls (Contrôles) contient quatre icônes, comme décrit dans le tableau suivant :

Icône 

Nom 

Objectif 

Figure représentant l'icône Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager)

Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) 

Démarre le profileur et ouvre la boîte de dialogue des options du profileur. 

Figure représentant l'icône Stop Identity Manager Profiler (Arrêter le profileur d'Identity Manager)

Stop Identity Manager Profiler (Arrêter le profileur d'Identity Manager) 

Arrête le profileur. 

Figure représentant l'icône Reset Collected Results (Réinitialiser les résultats recueillis)

Reset Collected Results (Réinitialiser les résultats recueillis) 

Réinitialise l'ensemble des résultats de profil recueillis à ce stade. 

Figure représentant l'icône Modify Profiling (Modifier le profilage)

Modify Profiling (Modifier le profilage) 

Ouvre de nouveau la boîte de dialogue des options du profileur pour vous permettre de changer les paramètres afin de modifier les résultats du profil courant. 

Zone de statut

La zone Status (Statut) indique si vous êtes connecté à l'hôte et contient les informations de statut relative au démarrage, à l'exécution et à l'arrêt du profileur.

Zone des résultats de profilage

La zone Profiling Results (Résultats de profilage) contient deux icônes, qui sont décrites dans le tableau suivant :

Icône 

Nom 

Objectif 

Figure représentant l'icône Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager)

Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) 

Démarre le profileur et ouvre la boîte de dialogue des options du profileur. 

Figure représentant l'icône Reset Collected Results (Réinitialiser les résultats recueillis)

Reset Collected Results (Réinitialiser les résultats recueillis) 

Réinitialise l'ensemble des résultats de profil recueillis à ce stade. 

Zone des instantanés enregistrés

La zone Saved Snapshots (Instantanés enregistrés) contient la liste de tous les instantanés enregistrés.


Remarque –

Les instructions à suivre pour enregistrer les instantanés figurent dans Enregistrement d'un instantané.


De plus, vous pouvez utiliser les boutons suivants pour gérer ces instantanés :

Travailler avec l'affichage des instantanés

Lorsque vous ouvrez un instantané, les résultats s'affichent dans la fenêtre Snapshot View (Affichage des instantanés), qui se trouve en haut à droite d'Identity Manager IDE.

Un instantané fournit plusieurs affichages des données qui sont décrits dans les sections suivantes :

Affichage Arborescence d'appels

L'affichage Call Tree (Arborescence des appels) est un tableau arborescent indiquant les temps des appels et leur nombre à travers le système.

Ce tableau arborescent comporte les trois colonnes suivantes :

Affichage Points actifs

L'affichage Hotspots (Points actifs) fournit une liste simplifiée de nœuds qui indique les temps d'appel cumulés indifféremment du parent.

Cet affichage contient les colonnes suivantes :

Affichage Traces inverses

L'affichage Back Traces (Traces inverses) fournit une pile d'appels inversée indiquant toutes les chaînes d'appel depuis lesquelles chaque nœud a été appelé.

Vous pouvez utiliser ces statistiques pour répondre à la question suivante : combien de temps économiserais-je si j'éliminais cette chaîne d'appels donnée de ce nœud ?

Vous pouvez accéder à l'affichage Traces inverses depuis n'importe lequel des autres affichages d'instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Back Traces (Afficher les traces inverses) dans le menu contextuel qui s'affiche.


Remarque –

Les valeurs des données Time (Temps) et Invocations (Appels) ont une autre signification dans l'affichage Traces inverses :


Affichage Programmes appelés

L'affichage Callees (Programmes appelés) fournit une arborescence d'appels regroupée pour un nœud (que l'on appelle le nœud racine), indifféremment de sa chaîne parent.

Ces statistiques sont utiles dans le cas où vous avez une zone à problème appelée depuis divers emplacements de l'arborescence d'appels et que vous voulez afficher l'ensemble du profil pour ce nœud.

Vous pouvez accéder à l'affichage Programmes appelés depuis n'importe lequel des autres affichages d'instantanés en cliquant avec le bouton droit sur un nœud (qui sera appelé le nœud racine) et en sélectionnant Show Callees (Afficher les programmes appelés) dans le menu contextuel qui s'affiche.


Remarque –

Les valeurs des données Time (Temps) et Invocations (Appels) ont la même signification que dans l'affichage Arborescence d'appels.


Utilisation des options du menu contextuel

Cliquer avec le bouton droit sur un nœud des affichages Arborescence d'appels ou Points actifs affiche un menu contextuel contenant les options décrites dans le tableau suivant :

Options du menu 

Description 

GoTo Source (Aller à la source) 

Sélectionnez cette option pour afficher la source XML d'un nœud qui correspond à une méthode Java, un flux de travaux, une règle ou XPRESS. Pour des informations détaillées sur cet affichage, reportez-vous à Mode de localisation et de gestion de la source par le profileur.

Show Back Traces (Afficher les traces inverses) 

Sélectionnez cette option pour accéder à l'affichage Traces inverses. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Traces inverses.

Show Callees (Afficher les programmes appelés) 

Sélectionnez cette option pour accéder à l'affichage Programmes appelés. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Programmes appelés.

Find In Hotspots (Chercher dans les points actifs) 

Sélectionnez cette option pour trouver un nœud dans l'affichage Points actifs. Pour plus d'informations sur cet affichage, reportez-vous à Affichage Points actifs.

List Options -> Sort ->(Lister les options ->Tri ->) 

Sélectionnez cette option pour : 

  • Aucun

  • Call Tree (Arborescence d'appels)

  • Time (Temps)

  • Invocations (Appels)

  • Ascending (Croissant)

  • Descending (Décroissant)

List Options -> Change Visible Columns (Lister les options -> Changer les colonnes visibles) 

Sélectionnez cette option pour changer les colonnes affichées dans la liste Arborescence d'appels ou Points actifs. 

Lorsque la boîte de dialogue Change Visible Columns (Changer les colonnes visibles) s'affiche, vous pouvez sélectionner une ou plusieurs des options suivantes : 

  • Call Tree: Call Tree (Arborescence d'appels : Arborescence d'appels)

  • Invocations: Invocations (Appels : Appels)

  • Time: Time (Temps : Temps)

Recherche d'un instantané

Utilisez l'icône Search (Recherche).Figure représentant l'icône Search (Recherche), qui se trouve en haut de la fenêtre Snapshot View (Affichage des instantanés) et permet de rechercher des nœuds par leur nom dans l'affichage Arborescence d'appels ou Points actifs.

Vous pouvez aussi cliquer avec le bouton droit sur un nœud de l'affichage Arborescence d'appels ou Points actifs et sélectionner Find in Call Tree (Chercher dans l'arborescence d'appels) ou Find in Hotspots (Chercher dans les points actifs) dans le menu contextuel pour rechercher un nœud.

Enregistrement d'un instantané

Le profileur comporte plusieurs options pour l'enregistrement d'un instantané. Pour la description de ces options, consultez le tableau suivant :

Icône 

Nom 

Objectif 

Figure représentant l'icône Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager)

Icône Save the Snapshot in the Project (Enregistrer l'instantané dans le projet, dans le haut de la fenêtre Affichage des instantanés) 

Enregistre l'instantané dans le répertoire nbproject/private/idm-profiler de votre projet. Les instantanés enregistrés dans votre projet sont listés dans la section Saved Snapshots (Instantanés enregistrés) de l'affichage du profileur.

Figure représentant l'icône Stop Identity Manager Profiler (Arrêter le profileur d'Identity Manager)

Icône Save the Snapshot Externally (Enregistrer l'instantané à l'extérieur, dans le haut de la fenêtre Affichage des instantanés) 

Enregistre un instantané dans un emplacement externe, arbitraire. 

Figure représentant l'icône Reset Collected Results (Réinitialiser les résultats recueillis)

Bouton Save As (Enregistrer sous, dans la zone Saved Snapshots (Instantanés enregistrés)). 

Enregistre un instantané dans un emplacement externe, arbitraire. 

Didacticiel : dépannage des problèmes de performance

Identity Manager fournit un didacticiel (profiler-tutorial.zip) pour vous aider à utiliser le profileur pour dépanner les formulaires, les règles Java, les flux de travaux et XPRESS.

Suivez les étapes ci-après pour compléter le didacticiel.

ProcedureÉtape 1: Création d'un projet Identity Manager

  1. Sélectionnez Fichier -> New Project (Nouveau projet).

  2. Lorsque l'assistant New Project (Nouveau projet) s'affiche, spécifiez ce qui suit puis cliquez sur Next (Suivant) :

    1. Dans la liste Categories (Catégories), sélectionnez Web pour indiquer le type de projet que vous créez.

    2. Dans la liste Projects (Projets), sélectionnez Identity Manager Project (Projet Identity Manager).


      Remarque –

      Vous devez créer un projet Identity Manager normal pour un environnement de déploiement doté de toutes les fonctionnalités. Ne sélectionnez pas l'option Identity Manager Project (Remote) (Projet Identity Manager (Distant)).


  3. Remplissez les champs suivants sur le panneau Name and Location (Nom et emplacement) puis cliquez sur Next (Suivant) :

    • Project Name (Nom du projet) : entrez Idm80 en tant que nom du projet.

    • Project Location (Emplacement du projet) : utilisez l'emplacement par défaut ou spécifiez-en un autre.

    • Dossier du projet : utilisez le dossier par défaut ou spécifiez-en un autre.

  4. Lorsque le panneau Identity Manager WAR File Location (Emplacement du fichier WAR d'Identity Manager s'affiche, entrez l'emplacement du fichier war d'Identity Manager 8.1. Normalement, la décompression de ce fichier crée un fichier idm.war dans le même répertoire.

  5. Cliquez sur Next (Suivant) pour passer au panneau Repository Setup (Configuration du référentiel).

    Vous ne devriez pas avoir à modifier les paramètres par défaut de ce panneau, cliquez simplement sur Terminer. Lorsque vous voyez le message BUILD SUCCESSFUL (COMPILATION RÉUSSIE) dans la fenêtre Identity Manager IDE Output (Sortie d'Identity Manager IDE), vous pouvez extraire les fichiers du didacticiel du profileur. Pour les instructions, reportez-vous à l'Décompression du didacticiel du profileur.

ProcedureDécompression du didacticiel du profileur

  1. Décompressez profiler-tutorial.zip dans la racine du projet. Les fichiers extraits sont les suivants :

    <project root>/custom/WEB-INF/config/ProfilerTutorial1.xml
    <project root>/custom/WEB-INF/config/ProfilerTutorial2.xml
    <project root>/src/org/example/ProfilerTutorialExample.java
    <project root>/PROFILER_TUTORIAL_README.txt
  2. Démarrez le profileur. Continuez par l'Étape 3 : Démarrage du profileur..

ProcedureÉtape 3 : Démarrage du profileur.

  1. Utilisez les instructions figurant dans Avant de commencer pour augmenter la mémoire pour votre serveur et la JVM Netbeans.

  2. Utilisez l'une des méthodes décrites dans Présentation pour démarrer le profileur.

  3. Vous pouvez spécifier les options de profilage lorsque la boîte de dialogue Profiler Options (Options du profileur) s'affiche.

  4. Continuez par l' Étape 4 : Définition des options du profileur


    Remarque –

    Pour des informations détaillées sur l'ensemble des différentes options du profileur, reportez-vous à Spécification des options du profileur.


Procedure Étape 4 : Définition des options du profileur

Dans le cadre de ce didacticiel, spécifiez les options suivantes pour le profileur :

  1. Sur l'onglet Mode (Mode), sélectionnez Java and IDM Objects (Objets Java et IDM) pour profiler des objets formulaire, Java, règle, flux de travaux et XPRESS.

  2. Sélectionnez l'onglet Java Filters (Filtres Java).

    Suivez les étapes ci-après pour désactiver l'ensemble de vos classes Java Identity Manager à l'exception de vos classes Java personnalisées (dans ce cas, org.example.ProfilerTutorialExample) :

    1. Cliquez sur New (Nouveau) : un nouveau champ vierge s'affiche dans le bas de la colonne Filter (Filtre).

    2. Saisissez com.waveset.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).

    3. Cliquez de nouveau sur New (Nouveau).

    4. Saisissez com.sun.idm.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).

  3. Cliquez sur OK pour exécuter le profileur.


    Remarque –

    La première exécution du profileur sur un projet ou peu après une action Clean Project (Nettoyer le projet) prend quelques minutes.


    Lorsque le profileur termine le traitement, vous êtes invité à vous connecter.

  4. Saisissez le mot de passe configurator, sélectionnez la case à cocher (Se rappeler le mot de passe) puis cliquez sur OK pour continuer.

  5. Connectez-vous lorsque la fenêtre Identity Manager s'affiche.


    Remarque –

    En général, vous devriez vous connecter à Identity Manager sous un autre nom d'utilisateur et non pas de nouveau en tant que configurator. Vous êtes déjà connecté au profileur en tant que configurateur et le pool de session d'Identity Manager n'autorise qu'une entrée par utilisateur. L'utilisation de plusieurs entrées peut entraîner l'apparition d'un pool de session interrompu et biaiser les résultats du profilage pour les problèmes de performances plus minutieux.

    Cependant, dans le cadre de ce simple exemple, le pool de session n'a pas de conséquences et vous pouvez vous connecter en tant que configurator/configurator.


  6. Dans Identity Manager, sélectionnez Tâches du serveur <:> Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow1.

    Le didacticiel peut prendre un certain temps pour répondre.

  7. Bien que vous puissiez prendre un instantané maintenant, vous allez à la place réinitialiser vos résultats, exécuter le profileur, l'exécuter de nouveau puis prendre un instantané.


    Remarque –

    Ceci est la pratique recommandée pour exécuter le profileur avant de prendre un instantané pour être sûr que tous les caches sont amorcés, que tous les JSP sont compilés, et ainsi de suite.

    Exécuter plusieurs fois le profileur vous permet de vous concentrer sur les problèmes de performance réels. La seule exception à cette pratique est constituée par le cas où vous auriez du mal à remplir les caches eux-mêmes.


    1. Revenez à l'affichage IDM Profiler (Profileur d'IDM) dans l'Identity Manager IDE. Cliquez sur l'icône Reset Collected Results (Réinitialiser les résultats recueillis) dans la section Profiling Results (Résultats du profilage) (ou dans la section Contrôles) pour réinitialiser tous les résultats recueillis à ce stade.

    2. Dans Identity Manager, sélectionnez de nouveau Tâches du serveur -> Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow1.

    3. Lorsque Schéma des processus s'affiche, revenez à Identity Manager IDE puis cliquez sur Take Snapshot (Prendre l'instantané) dans la section Profiling Results (Résultats du profilage).

  8. L'Identity Manager IDE télécharge votre instantané et affiche les résultats sur la droite de la fenêtre.

    Cette zone est l'affichage Call Tree (Arborescence d'appels). Vous devriez voir dans le haut de l'arborescence d'appels un /idm/task/taskLaunch.jsp avec un temps indiqué dans la colonne Time (Temps). Le temps devrait indiquer que l'ensemble de la requête a pris six+ secondes.

  9. Développez le nœud /idm/task/taskLaunch.jsp, vous pourrez voir que ProfilerTutorialWorkflow1 a pris six secondes.

  10. Développez le nœud ProfilerTutorialWorkflow1. Vous remarquerez que activity2 a pris quatre secondes et activity1 deux.

  11. Développez activity2.

    Vous remarquerez que action1 a pris deux secondes et action2 deux.

  12. Développez action1, vous verrez que invoke> a aussi pris deux secondes.

  13. Double-cliquez sur invoke> pour ouvrir ProfilerTutorialWorkflow1.xml et mettez en surbrillance la ligne suivante :


    <invoke name='example' class='org.example.ProfilerTutorialExample'/>

    Vous devriez voir qu'un appel vers la méthode ProfilerTutorialExample a pris deux secondes.


    Remarque –

    Vous explorez actuellement une source XML qui a été capturée dans l'instantané et non pas une source du projet. Les instantanés sont entièrement autonomes (pour des informations détaillées, reportez-vous àMode de localisation et de gestion de la source par le profileur).


  14. Sélectionnez l'onglet CPU: <date><temps pour revenir à votre instantané.

  15. Développez le nœud invoke>. Vous remarquerez que le profileur a passé deux secondes dans la méthode Java ProfilerTutorialExample.example().

  16. Double-cliquez sur le nom de la méthode pour ouvrir la source ProfilerTutorialExample.java et mettez en surbrillance la ligne suivante :


    Thread.sleep(2000);

    Vous tenez le problème ! Cette méthode contient un sommeil de thread de deux secondes.

  17. Si vous revenez à l'arborescence d'appels, vous pouvez voir que tous les chemins de deux secondes mènent à cette méthode (vous devriez voir trois chemins ; pour un total de six secondes).

  18. Sélectionnez l'onglet Hotspots (Points actifs, dans le bas de la zone de l'arborescence d'appels) pour ouvrir l'affichage Points actifs. Vous remarquerez que ProfilerTutorialExample.example() a un self time total de six secondes

    (pour plus d'informations sur les points actifs, reportez-vous à Travailler avec l'affichage des instantanés.)

  19. Cliquez avec le bouton droit sur ProfilerTutorialExample.example() et sélectionnez Show Back Traces (Afficher les traces inverses) dans le menu contextuel.

    Un nouvel onglet Back Traces (Traces inverses) s'affiche dans le bas de la zone.

  20. Développez le nœud ProfilerTutorialExample.example() sur l'onglet Traces inverses pour voir que cette méthode a été appelée depuis trois emplacements et qu'elle a pris deux secondes lorsqu'elle a été appelée depuis chaque emplacement

    (pour plus d'informations sur les traces inverses, reportez-vous à Travailler avec l'affichage des instantanés.)

  21. Cliquez sur Save the snapshot (Enregistrer l'instantané) dans l'icône du projet pour enregistrer votre instantané puis fermez.

    Si vous contrôlez la section Saved Snapshots (Instantanés enregistrés) de l'onglet IDM Profiler (Profileur IDM), vous devriez voir votre instantané (il se peut que vous deviez faire défiler la section vers le bas).

  22. Sélectionnez l'instantané enregistré puis cliquez sur Open (Ouvrir) pour l'ouvrir de nouveau.


    Remarque –

    Vous pouvez utiliser le bouton Enregistrer sous pour enregistrer vos instantanés à l'extérieur et le bouton Charger pour charger un instantané depuis l'extérieur de votre projet.


  23. Fermez de nouveau l'instantané.

ProcedureÉtape 5 : Profilage d'un flux de travaux ManualAction

La prochaine partie de ce didacticiel explique comment profiler une ManualAction de flux de travaux.

  1. Dans Identity Manager, sélectionnez Tâches du serveur -> Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow2.

    Un formulaire vide s'affiche au bout de quelques instants.

  2. Cliquez sur Save (Enregistrer) pour afficher le schéma du processus.

  3. Sélectionnez de nouveau Tâches du serveur -> Exécuter des tâches.

  4. Revenez à l'affichage Identity Manager IDE IDM Profiler et cliquez sur Reset Collected Results (Réinitialiser les résultats recueillis) dans la section Profiling Results (Résultats du profilage).

  5. Cliquez maintenant sur ProfilerTutorialWorkflow2 dans Identity Manager.

  6. Lorsque le formulaire vierge s'affiche de nouveau, cliquez sur Enregistrer.

  7. Dans l'affichage IDM Profiler (Profileur IDM), cliquez sur Take Snapshot (Prendre l'instantané).

    Un instantané devrait s'afficher au bout de quelques secondes dans la zone Call Tree (Arborescence des appels). Vous devriez voir que /idm/task/workItemEdit.jsp a pris six+ secondes (ce résultat correspond à l'action manuelle dans le flux de travaux).

  8. Développez le nœud /idm/task/workItemEdit.jsp, vous pourrez voir qu'exécuter toutes les dérivations dans le formulaire ManualAction a pris au total six secondes.

  9. Développez les nœuds Derivation, displayNameForm, variables.dummy et <block>.

    Vous devriez voir que block> a pris six secondes et que, de ce temps, le profileur a passé deux secondes dans chacun des trois appels à la méthode ProfilerTutorialExample.example().

  10. Vous pouvez double-cliquer sur <block> pour afficher la source.