Notes de version de Sun Identity Manager 8.1

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.