Cette section contient des informations nouvelles ou corrigées depuis la publication de la documentation d'Identity Manager 8.1.
Ces informations sont organisées comme suit :
Cette section contient des informations nouvelles et des corrections de documentation relatives au Sun Identity Manager 8.1 Business Administrator’s Guide :
Les informations suivantes seront ajoutées au chapitre Security (Sécurité) :
Identity Manager fournit désormais une authentification Login Recovery (Récupération des données de connexion) à titre de solution de remplacement de la connexion basée sur des questions de sécurité Mot de passe oublié. L'authentification Login Recovery (Récupération des données de connexion) implémente une option d'obscurcissement de messages qui rend toutes les erreurs et les réussites par le même message de résultat générique, ce qui permet de résister à l'exploitation des comptes. Sur le plan fonctionnel, la méthode de récupération de connexion repose sur le même système que la méthode Mot de passe oublié et toutes deux partagent les mêmes attributs de configuration. Cependant, la méthode de récupération de connexion réinitialise également le mot de passe de l'utilisateur et envoie tant l'ID de connexion que le mot de passe à l'adresse e-mail de l'utilisateur. (ID-18052)
Vous pouvez configurer la méthode Login Recovery (Récupération des données de connexion) afin de remplacer la connexion basée sur des questions en redirigeant le bouton Mot de passe oublié ou activer un nouveau bouton Login Recovery sur la page de connexion. Ces deux méthodes se configurent en modifiant le fichier de configuration système.
Pour rediriger le bouton Mot de passe oublié sur Login Recovery (Récupération des données de connexion) , configurez ce qui suit :
ui.web.user.questionLogin.forceLoginRecovery = true ui.web.admin.questionLogin.forceLoginRecovery = true |
Pour utiliser un bouton Login Recovery (Récupération des données de connexion) à la place du bouton Mot de passe oublié, configurez ce qui suit :
ui.web.user.disableLoginRecovery = false ui.web.admin.disableLoginRecovery = false ui.web.user.disableForgotPassword = true ui.web.admin.disableForgotPassword = true ui.web.user.disableForgotUserId = true ui.web.admin.disableForgotUserId = true |
Une option d'obscurcissement de messages qui aide le système Login Recovery (Récupération des données de connexion) à résister à l'exploitation des comptes est activée par défaut dans les fichiers loginRecovery.jsp. Vous pouvez définir cette même option dans les fichiers lookupUserId.jsp.
Cette section contient des informations nouvelles et des corrections de documentation relatives au Sun Identity Manager 8.1 System Administrator’s Guide.
Ces informations sont les suivantes :
Les tâches suivantes ont été déplacées du package adapter au package task dans Identity Manager version 8.0. Vous devez mettre à jour les chemins si le suivi est activé pour l'une quelconque de ces tâches ou si vous avez personnalisé les définitions de tâche référençant ces packages.
Ancien nom du package |
Nouveau nom du package |
---|---|
com.waveset.adapter.ADSyncFailoverTask |
com.waveset.task.ADSyncFailoverTask |
com.waveset.adapter.ADSyncRecoveryCollectorTask |
com.waveset.task.ADSyncRecoveryCollectorTask |
com.waveset.adapter.SARunner |
com.waveset.task.SARunner |
com.waveset.adapter.SourceAdapterTask |
com.waveset.task.SourceAdapterTask |
Cette section contient des informations nouvelles et des corrections de documentation relatives au Sun Identity Manager Deployment Guide (Guide de déploiement de Sun Identity Manager).
La section Adding Localization Support for the WIC du Sun Identity Manager Deployment Guide explique comment afficher les chaînes de schéma d'exportation sur la page Configuration du type d'exportateur de données dans une autre langue. Ces instructions devraient cependant préciser que seuls les clients qui n'utilisent pas les langues officiellement prises en charge doivent effectuer le étapes indiquées. Les langues officiellement prises en charge sont l'allemand, le chinois simplifié, le chinois traditionnel, le coréen, l'espagnol, le français, l'italien, le japonais et le portugais brésilien. (ID-19264)
Un fichier jar de localisation, contenant un fichier WICMessages.properties localisé, est packagé avec Identity Manager 8.1. Si vous utilisez un système Identity Manager localisé, vous pouvez afficher les messages WICMessages.properties localisés. Par exemple, vous pouvez accéder à l'URL de l'interface Identity Manager Administrator dans un navigateur configuré avec lang=ja.
De plus, l'exemple utilisé dans cette section n'est pas approprié. L'allemand étant en effet une langue prise en charge, les clients allemands n'auront pas à effectuer les étapes de cette section.
Il manque la description des codes d'erreur de connexion suivants dans ce guide : (ID-5657)
Identity Manager fournit les codes d'erreur suivants que le code du client peut contrôler pour déterminer le statut de connexion. Les valeurs de chaîne réelles sont les valeurs numériques entre parenthèses (par exemple, 101 ou 102). Le fichier Constants.java contient les codes d'erreur suivants :
LIGHTHOUSE_USER_NOT_FOUND = 101; LIGHTHOUSE_AUTHN_FAILED = 102; RESOURCE_AUTHN_SUCCESSFUL = 104; RESOURCE_AUTHN_FAILED = 108; X509_CERT_NOT_FOUND = 110; END_USER_ATTEMPTED_LOGIN_TO_ADMIN_APP = 120; LIGHTHOUSE_USER_DISABLED = 140; LIGHTHOUSE_USER_LOCKED = 180;
La description de l'objet de configuration système devrait contenir les informations suivantes sur ces attributs :
ProvisioningDisabledUserShouldThrow : lorsque cet attribut est défini sur true, toute tentative visant à provisionner un utilisateur désactivé à une ressource sera empêchée et produira une erreur. Lorsque cet attribut n'est pas sur true, le provisioning est empêché de la même manière mais aucune erreur ne se produit. (ID-20064)
security.delegation.historyLength : contrôle le nombre de délégations précédentes qui sont enregistrées. (ID-13331)
runPasswordLoginOnSuccess : lorsque cet attribut est défini sur true, Identity Manager exécute le flux de travaux Password Login (Connexion par mot de passe) lorsqu'un utilisateur réussit à se connecter en répondant aux questions d'authentification. Par défaut, la valeur de cette propriété est false. (ID-10030)
PasswordSyncThreshold : si la synchronisation des mots de passe est activée pour une ressource pour laquelle Identity Manager peut aussi lancer des changements de mots de passe, vous pouvez utiliser ce paramètre pour empêcher un changement de mot de passe de loopback. (ID-7887) Lorsque vous lancez un changement de mot de passe depuis Identity Manager, le mot de passe est défini sur la ressource et la bibliothèque PasswordSync avertit Identity Manager du changement. Identity Manager compare ensuite la date du dernier mot de passe (lastPasswordDate) sur l'objet utilisateur à l'heure courante. Si la différence est inférieure à PasswordSyncThreshold, Identity Manager ignore le changement de mot de passe. De cette manière, le changement de mot de passe supplémentaire ou inutile est ignoré de manière appropriée.
PasswordSyncResourceExcludeList : liste les noms des ressources devant toujours être exclues de la synchronisation.(ID-3275)
process.handleNativeChangeToAccountAttributes : défini sur true, active le contrôle des valeurs des attributs. Cette propriété est désactivée par défaut (remarque : ceci permet le contrôle des valeurs d'attributs pour à la fois le processus de réconciliation et le provisionneur). (ID-3275)
sources.subject : spécifie le nom de connexion de l'administrateur désigné comme le propriétaire de la tâche d'adaptateur de source. (ID-19694
sources.host : spécifie le serveur sur lequel la tâche d'adaptateur de source s'exécute.
security.saveNoValidateAllowedFormsAndWorkflows : liste les ID des formulaires et flux de travaux qui seront traités comme une action SaveNoValidate. Tous les autres formulaires et flux de travaux seront traités comme une action Save. Si la liste n'est pas présente, le comportement reste le même pour tous les formulaires et flux de travaux (tous les formulaires et flux de travaux seront traités en tant que SaveNoValidate.) (ID-19474)
L'exportateur de données permet d'exporter périodiquement les données qui sont gérées ou ont été traitées par Identity Manager dans un ensemble de tables DBMS pour les traiter ultérieurement. Le processus d'exportation est volontairement ouvert aux personnalisations, certaines de celles-ci pouvant requérir une intervention manuelle pour obtenir le comportement approprié. Les objets de configuration d'Identity Manager pertinents pour l'exportateur de données sont préservés et mis à jour de manière appropriée. Cependant, une certaine personnalisation de l'exportateur est apportée aux fichiers au sein de l'application Web, et ceux-ci exigent une gestion spéciale.
Pendant le processus de mise à jour, Identity Manager écrase tous les fichiers non modifiés de l'exportateur de données dans les répertoires $WSHOME et $WSHOME/exporter. Si vous avez apporté des modifications à un ou plusieurs fichiers de l'exportateur de données, le processus de mise à jour laisse la version modifiée en place et installe la version plus récente du fichier dans $WSHOME/patches/Identity_Manager_8_1_0_0_ Date/filesNotInstalled. Pour fusionner la nouvelle fonctionnalité avec vos personnalisations, vous devez effectuer l'opération manuellement.
Vous remarquerez que les fichiers suivants contenus dans $WSHOME sont souvent personnalisés.
model-export.dtd model-export.xml model-export.xsl exporter/exporter.jar exporter/create_warehouse.* exporter/drop_warehouse.* exporter/hbm/*.hbm.xml
Les étapes de mise à niveau à suivre varient selon que vous avez personnalisé l'exportateur de données dans la version 8.0 et en fonction de vos plans pour l'explorateur de données dans la version 8.1.
Si vous avez personnalisé l'exportateur de données pour la version 8.0 et voulez implémenter les fonctionnalités de la version 8.1 :
Abandonnez le schéma d'entrepôt.
Effectuez la mise à niveau vers Identity Manager.
Recréez le schéma avec la nouvelle LDD dans le répertoire $WSHOME/exporter.
Il n'y a pas de scripts de mise à niveau de schéma qui permettent au schéma d'être modifié avec les données en place. Par conséquent, pour préserver les données, vous devez les exporter puis les importer. Le schéma d'entrepôt 8.1 est compatible pour ce qui est des tables et des champs avec la version précédente et ce, même si la version 8.1 a ajouté de nouvelles tables et de nouveaux champs aux tables existantes. L'ordre des champs a également été modifié. Résultat, l'exportation effectuée doit être une exportation se limitant aux seules données, pas une exportation englobant la LDD et les données.
Fusionnez les personnalisations avec les nouveaux fichiers d'exportateur 8.1. Si model-export.xml a été personnalisé, recompilez le fichier exporter.jar.
Chargez le nouveau schéma d'entrepôt.
Si vous avez personnalisé l'explorateur de données pour la version 8.0 et ne voulez pas implémenter les fonctionnalités de la version 8.1 :
Vous pouvez effectuer une mise à niveau vers la version 8.1 sans effectuer aucune des étapes supplémentaires. Cependant, si vous effectuez une mise à niveau vers l'exportateur 8.1 sans mettre à niveau la LDD de l'entrepôt, la page Configuration de l'entrepôt affiche un message d'erreur qui indique qu'il manque la table EXT_ADMINGROUP. Ceci indique que les nouveaux objets 8.1 sont en place mais que l'ancienne LDD de l'entrepôt 8.0 est encore chargée.
Si vous n'avez pas personnalisé l'explorateur de données pour la version 8.0 et ne prévoyez pas d'implémenter les fonctionnalités de la version 8.1 :
Abandonnez le schéma d'entrepôt.
Effectuez la mise à niveau vers Identity Manager.
Chargez le nouveau schéma d'entrepôt.
Les données figurant dans l'entrepôt restent inchangées. Vous n'avez pas besoin de modifier la LDD si model-export.xml a été personnalisé. Si model-export.xml n'a pas été personnalisé, vous devez alors charger la nouvelle LDD.
Après l'installation de la version 8.1, si la version 8.1 de model-export.xml est en place, vous pouvez voir les nouveaux types de données et attributs en regardant le fichier du schéma sur http://server: port/idm/model-export.xml. Les nouveaux types et attributs sont marqués du numéro de version 8.1.
Cette section contient des informations nouvelles et des corrections de documentation relatives au document intitulé Sun Identity Manager Deployment Reference.
Il manque la description suivante relative à l'ajout d'une invitation à confirmer le mot de passe aux formulaires dans ce chapitre : (ID-7604)
Vous pouvez utiliser la propriété de formulaire RequiresChallenge pour ajouter une invitation à confirmer le mot de passe dans des formulaires sélectionnés. Lorsque cette fonctionnalité est activée, Identity Manager demande à l'administrateur connecté à ce moment son mot de passe avant de traiter une requête. Les formulaires prenant en charge cette option sont les suivants :
userForm (formulaire Tabbed User, formulaire Wizard User, formulaire Default User) ;
changePassword (par défaut, le formulaire Change User Password) ;
resetPassword (par défaut, le formulaire Reset User Password) ;
La propriété est spécifiée différemment selon les formulaires.
Pour ajouter une invitation à confirmer le mot de passe à un formulaire utilisateur, ajoutez l'élément RequiredElement suivant comme indiqué ci-dessous avec les substitutions pour password (mot de passe), email (e-mail) et fullname (nom complet) :
<Property name='RequiredChallenge'> <List> <String>password</String> <String>email</String> <String>fullname</String> </List> </Property> |
La valeur de la propriété est une liste contenant au moins un des noms d'attribut d'utilisateur suivants : applications, adminRoles, assignedLhPolicy, capabilities, controlledOrganizations, email, firstname, fullname, lastname, organization, password, resources, roles.
Pour ajouter une invitation à confirmer le mot de passe à un formulaire changePassword ou resetPassword, ajoutez l'élément <RequiresChallenge> suivant comme indiqué ci-dessous, avec les dues substitutions pour password, email et fullname :
<Property name='RequiresChallenge' value='true'/>
Où la valeur de la propriété peut être « true » ou « false ».
Si la propriété est définie sur « true » dans le formulaire, Identity Manager invitera l'administrateur connecté à ce moment demandant la modification à saisir le mot de passe qu'il aura utilisé pour se connecter à Lighthouse. Si l'invitation reste sans réponse (c'est-à-dire si le mot de passe de l'administrateur connecté à ce moment n'est pas saisi), Identity Manager n'autorisera pas la modification. Si la confirmation réussit, Identity Manager autorisera la poursuite de la demande de modification. Les deux formulaires de gestion de mots de passe prennent en charge la propriété de formulaire « RequiresChallenge ». Lorsque cette propriété est définie sur true, l'utilisateur est invité à saisir son ancien mot de passe après avoir spécifié le nouveau.
Vous pouvez créer deux clés de catalogue de messages personnalisées qui empêchent Identity Manager d'afficher les informations de version lorsqu'un utilisateur positionne le curseur sur le bouton d'aide. La clé UI_END_USER_VERSION masque les informations de version sur l'interface utilisateur final tandis que la clé UI_VERSION est utilisée pour l'interface administrateur.
Définir la valeur de la clé sur une chaîne vide empêche l'affichage des informations de version.
L'exemple suivant désactive les informations de version pour les deux interfaces.
<Waveset> <Configuration name="sampleCustomCatalog"> <Extension> <CustomCatalog id="defaultCustomCatalog" enabled="true"> <MessageSet language="en" country="US"> <Msg id="UI_END_USER_VERSION"></Msg> <Msg id="UI_VERSION"></Msg> </MessageSet> </CustomCatalog> </Extension> </Configuration> </Waveset>
La section suivante manque dans le chapitre « Forms » (Formulaires) : (ID-18869)
Il y a par défaut deux implémentations du formulaire de modification de mot de passe :
Le formulaire End User Password Change est le formulaire de modification de mot de passe par défaut. Il présente un ensemble simple de champs permettant à l'utilisateur de modifier son mot de passe. Les stratégies de mot de passe de toutes les ressources assignées à l'utilisateur sont regroupées et résumées, et Identity Manager applique la modification de mot de passe à toutes les ressources assignées.
Le formulaire Basic Change Password est présent dans les deux interfaces administrateur et utilisateur. Il fournit des informations sur les ressources qui sont assignées à l'utilisateur et permet à ce dernier de sélectionner une à une les ressources pour lesquelles Identity Manager devra modifier le mot de passe.
Les deux formulaires de gestion de mots de passe prennent en charge l'utilisation de la propriété de formulaire « RequiresChallenge ». Lorsque cette propriété est définie sur true, l'utilisateur est invité à saisir son ancien mot de passe après avoir spécifié le nouveau.
Les chapitres Forms (Formulaires) et Workflow (Flux de travail) de ce guide omettent la section suivante relative à l'assignation d'une étendue aux éléments <Variable> : (ID-14915)
Identity Manager assigne une étendue à tous les éléments <Variable> au moment de leur déclaration. Si vous n'assignez pas de valeur à l'attribut d'étendue, Identity Manager lui assigne la valeur local , ce qui signifie que la variable n'est accessible que de la section XPRESS qui y est déclarée.
Les autres attributs variables qui définissent l'étendue sont les suivants :
input : déclare que l'élément <Variable> a une étendue locale et que la valeur peut être initialisée par le programme appelant.
output : déclare que l'élément <Variable> a une étendue locale mais peut être retourné au programme appelant.
external : déclare une <Variable> ayant une étendue non locale, autrement dit les assignations à cette variable résulteront en une assignation à cette variable dans l'étendue dans laquelle elle a d'abord été déclarée.
Il manque la section suivante relative à la fonctionnalité de liste blanche dans ce chapitre. (ID-19474)
La fonctionnalité de liste blanche d'Identity Manager permet de contrôler les formulaires et les flux de travaux qui utilisent l'action SaveNoValidate à la lueur d'une liste d'ID ou de noms de formulaires. Identity Manager contrôle la liste blanche pour voir si les noms de formulaires ou les ID des propriétaires des formulaires qui y figurent. La liste d'ID, appelée saveNoValidateAllowedFormsAndWorkflows, se trouve dans l'attribut de sécurité dans l'objet de configuration système. Si le nom du formulaire ou l'ID du propriétaire figure sur la liste blanche, le formulaire ou flux de travaux peut utiliser l'action SaveNoValidate. Si le nom du formulaire ou l'ID du propriétaire ne figure pas dans la liste, le formulaire ou flux de travaux est traité en utilisant une action Save. Si la liste n'est pas présente, tous les formulaires et flux de travaux peuvent être traités en tant que SaveNoValidate.
Pour implémenter cette fonctionnalité dans votre déploiement, vous devez ajouter des formulaires ou flux de travaux utilisant SaveNoValidate à la liste saveNoValidateAllowedFormsAndWorkflows dans l'objet de configuration système. Pour voir les ID ou noms de formulaires que vous devez ajouter, contrôlez le syslog ou activez le niveau de suivi 4 pour com.waveset.ui.util.GenericEditForm et envoyez tout formulaire ou flux de travaux personnalisé utilisant SaveNoValidate. Un avertissement incluant l'ID sera consigné. Si vous obtenez des noms de formulaire null dans le syslog, confirmez que le formulaire contenu dans la TaskDefinition exécutée a un attribut de nom.
Il manque la section suivante relative au flux de travaux handleNativeChangeToAccountAttributes dans le chapitre Workflow (Flux de travaux) (ID-3275) :
À chaque fois qu'Identity Manager détecte l'apport d'un changement natif (c'est-à-dire, un changement non effectué par le biais d'Identity Manager) aux valeurs d'un attribut analysable d'un compte de ressource, il répond en exécutant le flux de travaux handleNativeChangeToAccountAttributes, qui est associé à cet attribut de l'objet de configuration système :
<Attribute name='process'> <Object> <Attribute name='handleNativeChangeToAccountAttributes' value='Audit Native Change To Account Attributes'/> </Object> </Attribute>
Ce flux de travaux consigne les événements de type changement natif dans le journal des événements si vous avez activé le filtre d'audit Changes Outside Lighthouse (Modifications hors Lighthouse). Sinon, Identity Manager ignore l'événement. Avertissement : faites attention aux méthodes que vous appelez depuis l'un des flux de travaux remplaçant le flux de travaux par défaut listé ci-dessus.
Etant donné qu'Identity Manager lance ce flux de travaux à chaque fois qu'une extraction de compte de ressources révèle un changement natif, il ne doit appeler aucune méthode ou aucun flux de travaux susceptible de déclencher une autre extraction du même compte de ressources. Par exemple, vous obtiendrez une boucle infinie si vous appelez une méthode WorkflowServices qui assemble l'affichage de l'utilisateur : getView(User),checkoutView(User) et si possible checkinView(User).
Le fait qu'Identity Manager gère chaque changement natif en exécutant un flux de travaux vous permet d'accrocher l'événement de changement natif et de gérer le changement natif de toute façon vous semblant appropriée en remplaçant le flux de travaux de changement natif par défaut ou en y ajoutant quelque chose. Par exemple, vous pouvez décider d'envoyer un e-mail à un administrateur ou un utilisateur, d'enregistrer l'évènement dans une base de données, de mettre en file d'attente une mise à jour qui annule le changement natif ou même d'introduire ce changement natif dans d'autres ressources puis de l'en faire sortir.
Il manque la section suivante relative à la spécification de l'objet ou de l'administrateur d'une tâche d'adaptateur de source. (ID-19694).
Vous pouvez assigner un sujet ou un administrateur à une tâche d'adaptateur de source et désigner le serveur sur lequel elle s'exécute en éditant les attributs suivants de l'objet de configuration système. source.subject spécifie le nom de connexion de l'administrateur désigné comme le propriétaire de cette tâche. sources.host spécifie le serveur sur lequel la tâche s'exécute. Les nouvelles valeurs de l'objet de configuration sont par défaut les suivantes :
<Attribute name='sources'> <Object> <Attribute name='hosts'/> <!-- any host is the default --> <Attribute name='subject' value='Configurator'/> </Object> </Attribute>
Cette section contient des informations nouvelles et des corrections de documentation relatives au document intitulé Sun Identity Manager 8.1 Resources Reference.
Il manque les informations suivantes relatives à la façon dont ConnectorAdapter implémente la méthode run() dans la section consacrée aux connecteurs d'identité : les arguments transmis au service runResourceAction sont transmis au script (défini dans la ResourceAction) comme des variables de script directes. (ID-19856)
Cette section contient des informations nouvelles et des corrections de documentation relatives au document intitulé Sun Identity Manager Service Provider 8.1 Deployment.
L'élément ResourceAttribute peut contenir un élément ValidationPolicy. Une stratégie de validation garantit que la valeur qu'un utilisateur spécifie sur la page Paramètres de ressource remplit les conditions définies dans un objet de stratégie à part.
Dans l'exemple suivant, l'adaptateur utilise la stratégie de port pour garantir que la valeur spécifiée soit valide. La stratégie de port par défaut contrôle que la valeur est un entier compris entre 1 et 65536.
<ResourceAttribute name=.Port. value=.123.> <ValidationPolicy> <ObjectRef type=.Policy. id=.#ID#PortPolicy. name=.Port Policy./> </ValidationPolicy> </ResourceAttribute>
Cette FAQ répond à des questions fréquemment posées sur l'utilisation d'Identity Manager IDE.
Les informations sont organisées dans les catégories suivantes :
Quelle version de Netbeans dois-je utiliser ?
Réponse :Utilisez la version de Netbeans référencée dans la documentation produit d'Identity Manager fournie pour la version du plug-in Netbeans que vous utilisez.
Utilisez toujours la version exacte référencée car même les versions de patchs peuvent causer l'interruption de la fonctionnalité principale.
Le plug-in Netbeans marchait, j'ai fait quelque chose et depuis il ne marche plus. Quelle pourrait être la cause du problème ?
Réponse :Ce problème est souvent dû à un fichier corrompu dans le répertoire .netbeans. En général, supprimer le répertoire .netbeans et réinstaller le plug-in NetBeans résout le problème (supprimer le répertoire .netbeans désinstalle effectivement le plug-in NetBeans ; vous perdrez tous vos paramètres d'utilisateur mais le contenu de votre projet sera sauf).
Les étapes sont les suivantes :
Arrêtez NetBeans.
Supprimez le répertoire .netbeans.
Lancez NetBeans.
Installez le plug-in NetBeans.
Redémarrez NetBeans.
La construction et l'exécution d'un projet semblent ne jamais finir et il semble qu'Identity Manager IDE copie énormément de fichiers. Quelle pourrait être la cause du problème ?
Réponse :Ce problème peut survenir pour les raisons suivantes :
Vous utilisez le plug-in d'Identity Manager IDE 7.0 ou 7.1.
Utilisez le plug-in d'Identity Manager IDE 8.0. Plusieurs ajustements ont été apportés à Identity Manager IDE 8.0 Configuration Build Environment (CBE) pour améliorer les performances.
Il est possible que vous utilisiez inutilement les commandes Clean.
Lorsque vous utilisez Clean Project ou Clean And Build Project, l'Identity Manager IDE supprime l'ensemble du répertoire image, qui contient plusieurs milliers de fichiers. Identity Manager IDE devra copier tous ces fichiers depuis idm-staging pendant la prochaine compilation.
Pour utiliser efficacement l'Identity Manager IDE , vous devez savoir quand utiliser les commandes Clean. Pour plus d'informations, reportez-vous à la section « When to Use Clean » (Quand utiliser Clean) du fichier README.txt d'Identity Manager IDE.
Maintenant que j'ai créé un projet Identity Manager, quels sont les fichiers qui devraient être contrôlés dans le contrôle source ?
Réponse :Pour plus d'informations, reportez-vous à la section « CVS Best Practices » (Pratiques CVS recommandées) du fichier README.txt d'Identity Manager IDE.
Question :Quelles sont les pratiques recommandées pour l'utilisation de la gestion de projets dans CVS ?
Réponse :Pour plus d'informations, reportez-vous à la section « CVS Best Practices » (Pratiques CVS recommandées) du fichier README.txt d'Identity Manager IDE.
Question :Quels sont les objets importés dans le référentiel ?
Réponse :Pour plus d'informations, voir Travailler avec le référentiel.
Question :Comment puis-je ajouter un nouveau JAR au projet ?
Réponse :Reportez-vous à la section « How to Add a New JAR Dependency » (Comment ajouter une nouvelle dépendance JAR) du fichier README.txt d'Identity Manager IDE .
Quel répertoire dois-je utiliser pour mon référentiel sandbox ?
Réponse :Utilisez le référentiel imbriqué pour votre sandbox, en particulier si vous utilisez Identity Manager 7.1 (ou une version ultérieure), qui a un référentiel HsSQL disponible. Vous perdrez en fonctionnalité si vous n'utilisez pas le référentiel imbriqué.
Pour plus d'informations, reportez-vous à la section « Working with the Repository » (Travailler avec le référentiel) du fichier README.txt d'Identity Manager IDE.
Question :Quand les objets sont-ils importés automatiquement ?
Réponse :Vous devez configurer Identity Manager IDE pour importer automatiquement des objets.
Les étapes sont les suivantes :
Sélectionnez Référentiel > Manage Embedded Repository (Gérer le référentiel imbriqué) dans le menu d'IdM.
Activez l'option Automatically Publish Identity Manager Objects (Publier automatiquement les objets d'Identity Manager) dans la boîte de dialogue Manage Embedded Repository (Gestion du référentiel imbriqué).
Cette option n'est pas disponible pour Identity Manager Project (Remote) (Projet Identity (Distant)) ni si vous spécifiez votre propre référentiel.
Sélectionnez Project (Projet) > Run Project (Exécuter le projet) ou Project (Projet) > Debug Project (Déboguer le projet).
L'Identity Manager IDE importe automatiquement tous les objets qui ont changé depuis la dernière exécution du projet.
Publier automatiquement les objets d'Identity Manager augmente le temps nécessaire pour démarrer le serveur. Pour minimiser le temps de démarrage du serveur, désactivez cette option et téléchargez explicitement les objets dans le référentiel.
Quelle est la manière la plus efficace de charger des objets ?
Réponse :Utilisez l'une des méthodes suivantes pour télécharger les objets modifiés :
Cliquez sur un ou plusieurs objets modifiés dans le projet avec le bouton droit de la souris et sélectionnez Upload Object (Charger l'objet) dans le menu contextuel.
Pour charger plusieurs objets, appuyez sur la touche Contrôle et maintenez-la enfoncée pendant que vous sélectionnez ces objets dans la liste.
Sélectionnez un ou plusieurs objets modifiés puis sélectionnez Repository (Référentiel) > Upload Objects (Télécharger les objets) dans le menu d'IdM. Une boîte de dialogue vous permettant de sélectionner les objets à télécharger s'affiche.
Les deux méthodes téléchargent le ou les objets directement sur le serveur : il n'y a donc pas de problème de latence de cache et l'opération est bien plus rapide que si vous utilisez Run Project (Exécuter le projet) ou Debug Project (Déboguer le projet). La fonctionnalité Upload Objects (Télécharger les projets) est disponible quel que soit le référentiel utilisé.
Le serveur d'application imbriqué Netbeans s'arrête désormais automatiquement lorsque vous effectuez l'une des opérations de projet suivantes :
nettoyer un projet ;
créer une distribution Delta ;
créer un fichier JAR ;
déboguer un projet ;
gérer un référentiel imbriqué ;
profiler un projet ;
exécuter un projet.
Le débogueur d'Identity Manager IDE est lent. Quelle pourrait être la cause du problème ?
Réponse :Pour améliorer la performance du débogueur :
Désactivez toujours le HTTP Monitor de Tomcat, comme suit :
Sélectionnez l'onglet Runtime (Exécution) d'Identity Manager IDE.
Développez le nœud Serveurs et cliquez avec le bouton droit de la souris sur Bundled Tomcat (Tomcat fourni en standard) > Propriétés.
Désactivez l'option Enable HTTP Monitor (Activer le moniteur HTTP) et fermez la boîte de dialogue.
La prochaine fois que vous démarrerez Tomcat, le moniteur HTTP sera désactivé.
Si vous ne déboguez pas Java, sélectionnez Project (Projet) > Run Project (Exécuter le projet) puis Attach Debugger (Joindre le débogueur) > Identity Manager XML Object Debugger (Débogueur des objets XML d'Identity Manager) pour utiliser uniquement le débogueur XPRESS.
Sélectionner Project (Projet) > Debug Project (Déboguer le projet) pour un projet Identity Manager IDE non distant démarre à la fois le débogueur XPRESS et le débogueur Java, ce dernier augmentant considérablement le temps système.
Je ne parviens pas à définir de point d'arrêt dans le débogueur. Quelle pourrait être la cause du problème ?
Réponse :Les conditions suivantes pourraient vous empêcher de définir un point d'arrêt :
Vous venez d'installer NBM, mais n'avez pas redémarré Netbeans.
Votre XML contient un élément wrapper <Waveset>.
L'Identity Manager IDE basiquement ignore tout fichier commençant par un élément wrapper <Waveset> car il analyse cet élément comme un fichier multi-objet.
Les fonctionnalités suivantes ne fonctionnent pas sur les fichiers multi-objets :
Debugger (débogueur) ;
Rule Tester (testeur de règles) ;
Form Previewer (outil de prévisualisation de formulaires) ;
les éditeurs ;
le générateur de fichiers d'import ;
Upload Object (téléchargement d'objets) ;
Diff Object (diff. objet).
Basiquement, la seule opération que vous pouvez faire avec les fichiers multi-objets est de les importer. Les seuls fichiers qui devraient contenir des éléments wrapper Waveset> sont les fichiers d'import de niveau supérieur de votre projet.
J'ai défini un point d'arrêt dans le débogueur mais ce dernier ne s'interrompt pas à ce point d'arrêt. Quelle pourrait être la cause du problème ?
Réponse :Il y a deux points à contrôler :
Contrôlez que le nom de l'objet ne contient pas de chaîne de substitution CBE (%%). Les chaînes de substitution CBE ne sont pas autorisées dans les noms d'objets.
Vérifiez si le code que vous pensez être en cours d'exécution l'est réellement. Essayez d'ajouter une trace et regardez si quelque chose s'imprime.
Lors du développement de règles dans Netbeans, pourquoi le mode conception n'est-il pas disponible pour une bibliothèque de règles ?
Réponse :La fonctionnalité de mode conception est disponible depuis l'arborescence de l'explorateur dans l'affichage Projects (Projets). Suivez les étapes ci-après :
Développez le nœud de la bibliothèque et cliquez avec le bouton droit de la souris sur une règle.
Lorsque le menu contextuel s'affiche, sélectionnez Propriétés puis cliquez sur Body (Corps).
D'un point de vue historique, Identity Manager ne traduit pas les fonctions et les objets de ressources, essentiellement parce qu'ils constituent souvent des exemples à charger (via le fichier init.xml au cours de l'initialisation d'Identity Manager et également parce que les attributs des types d'objets varient d'un déploiement client à l'autre, suivant le niveau de personnalisation atteint. La liste suivante récapitule les zones du produit que les utilisateurs pourront rencontrer en anglais : (ID-16349)
Formulaires utilisateur par défaut et mappage de processus
Exemple : menus déroulants sous Éditer un utilisateur > Sécurité > Formulaire utilisateur
Exemple : Configurer > Mappages des formulaires et processus
Noms des attributs d'objets de configuration
Exemple : Configurer > Interface utilisateur, noms concaténés tels que displayPasswordExpirationWarning
Tâches par défaut
Modèles de tâches
Exemple : Tâches du serveur > Configurer les tâches > noms des modèles de tâches disponibles dans un tableau
Étiquettes des types de tâches
Exemple : Tâches du serveur > Exécuter des tâches > éléments de la deuxième colonne du tableau Tâches disponibles
Définitions des tâches
Exemple: Tâches du serveur > Rechercher des tâches > deuxième menu déroulant pour sélectionner Définition de la tâche
Noms des rapports par défaut
Exemple : noms des rapports disponibles sous Rapports > Exécuter des rapports > Tableau de rapports
Noms des stratégies par défaut
Exemple : Conformité > Gérer les stratégies > noms et descriptions des stratégies d'audit
Noms des capacités par défaut
Exemple : Éditer un utilisateur > Sécurité > Capacités disponibles
Noms des rapports et des graphes par défaut
Applets des diagrammes de processus/flux de travaux
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 :
Le profileur d'Identity Manager est uniquement pris en charge sur la version 7.1 Update 1 et les versions ultérieures.
Cette section présente les caractéristiques et les fonctionnalités du profileur d'Identity Manager : Les informations sont organisées comme suit :
Vous pouvez utiliser le profileur pour :
Créer des « instantanés » des données de profilage.
Un instantané est le résultat cumulé du profilage depuis la dernière réinitialisation de l'ensemble des résultats de profilage recueillis.
Afficher les résultats d'un instantané dans quatre affichages de données différents :
L'affichage Arborescence des appels fournit un tableau arborescent indiquant les temps des appels et leur nombre à travers le système.
L'affichage Points actifs fournit une liste simplifiée de nœuds qui indique les temps regroupés indifféremment du parent.
L'affichage Traces inverses fournit une pile d'appels inversée indiquant toutes les chaînes d'appels depuis lesquelles le nœud en question (le nœud racine) a été appelé.
L'affichage Callees (Programmes appelés) fournit une arborescence d'appels regroupée du nœud racine, indifféremment de sa chaîne parent.
Spécifiez les types d'informations à inclure dans l'instantané :
vous pouvez inclure n'importe quel élément de formulaire, flux de travaux et XPRESS ou encore restreindre le contenu à un ensemble d'éléments spécifiques.
Vous pouvez sélectionner des méthodes Java et des constructeurs spécifiques qui seront inclus ou exclus de l'instrumentation. L'instrumentation des classes d'Identity Manager et des classes personnalisées est prise en charge.
Gérez votre instantané de projet comme suit.
Enregistrez l'instantané dans le répertoire nbproject/private/idm-profiler de votre projet ou dans un emplacement arbitraire extérieur à votre projet.
Vous pouvez afficher la liste de tous les instantanés enregistrés dans la section Saved Snapshots (Instantanés enregistrés) de l'affichage du profileur IDM.
Ouvrez les instantanés depuis votre projet ou chargez-les depuis un emplacement arbitraire extérieur à votre projet.
Supprimez les instantanés.
Recherchez des nœuds spécifiques, par nom.
Cette section décrit la façon dont le profileur recherche et gère la source pour les objets suivants d'Identity Manager :
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.
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.
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.
Dans un instantané de source Java, ne partez pas du principe que la source est actualisée sur le serveur ou toujours disponible.
Les sections suivantes contiennent des informations dont il convient de tenir compte lors de l'évaluation des résultats fournis par le profileur :
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.
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) |
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.
Cette section explique comment démarrer le profileur et comment fonctionne son interface graphique. Ces informations sont organisées comme suit :
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 :
Ouvrez la fenêtre Netbeans et sélectionnez l'onglet Runtime (Exécution).
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.
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.
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 :
Ouvrez le fichier rép-installation-netbeans\etc\netbeans.conf et localisez la ligne suivante :
netbeans_default_options="-J-Xms32m -J-Xmx ...
Remplacez la valeur -J-Xmx par -J-Xmx1024M.
Enregistrez puis fermez le fichier.
Ceci fait, vous pouvez démarrer le profileur comme décrit dans la section suivante.
Vous pouvez utiliser au choix l'une des méthodes suivantes pour démarrer le profileur depuis la fenêtre Identity Manager IDE :
Cliquez sur l'icône Start Identity Manager Profiler on Main Project (Démarrer le profileur d'Identity Manager sur le projet principal) qui se trouve sur la barre de menu.
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.
Depuis la barre de menu, sélectionnez Window (Fenêtre) > IDM Profiler (Profileur d'IDM).
La fenêtre Identity Manager Profiler (Profileur d'Identity Manager) s'affiche dans Explorer. Depuis cette fenêtre, sélectionnez un projet Identity Manager dans le menu déroulant Current Project (Projet courant) puis cliquez sur l'icône Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) dans la section Controls (Contrôles).
Cliquez avec le bouton droit de la souris sur un projet dans la fenêtre Projects (Projets) puis sélectionnez Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) dans le menu contextuel.
Sélectionnez un projet dans la fenêtre Projects (Projets) puis sélectionnez IdM -> Start Identity Manager Profiler (Démarrer le profileur d'Identity Manager) dans la barre de menu
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.
Cette section décrit les fonctionnalités de l'interface graphique du profileur et leur utilisation. Les informations sont organisées comme suit :
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 :
Si vous utilisez un projet Identity Manager normal avec une instance imbriquée d'Identity Manager, le profileur effectue une compilation complète, un déploiement dans le serveur d'application de NetBean et démarre le profileur.
Si vous utilisez un projet Identity Manager normal avec une instance externe d'Identity Manager ou le projet Identity Manager distant, le profileur se rattache à l'instance d'Identity Manager configurée pour le projet.
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.
L'onglet Mode comporte les options suivantes :
IDM Objects Only (Objets IDM uniquement) : sélectionnez cette option pour profiler les objets formulaire, règle, flux de travaux et XPRESS. Exclut les objets Java du profil.
Java and IDM Objects (Objets Java et IDM) : sélectionnez cette option pour profiler les objets formulaire, règle, flux de travaux et XPRESS.
L'option Java and IDM Objects n'est pas disponible si vous si vous utilisez un projet Identity Manager normal avec une instance externe d'Identity Manager ou un projet Identity Manager distant.
Vous ne pouvez pas modifier l'option Mode pendant l'exécution du profileur : vous devez arrêter ce dernier pour la modifier.
L'onglet IDM Object Filters (Filtres à objets IDM) comporte les options suivantes :
Show IDM Object details (Afficher les détails des objets IDM)
Sélectionnez cette case pour inclure tous les éléments de type formulaire, flux de travaux et XPRESS dans l'instantané.
Désélectionnez-la pour n'inclure que les éléments suivants dans l'instantané :
<invoke>
<new>
<Rule>
<Form>
<WFProcess>
<ExScript>
<ExDefun>
<FieldRef>
<Action> (pour les légendes de l'application de flux de travaux)
Include Anonymous Sources (Inclure les sources anonymes) :
Les sources anonymes sont des formulaires (ou des portions de formulaire) qui sont générées à la volée (par exemple des formulaires Login et MissingFields) et ne correspondent à aucun formulaire persistant résidant dans le référentiel d'Identity Manager.
Cochez cette case pour inclure que les sources anonymes dans l'instantané.
Désélectionnez cette case pour exclure que les sources anonymes dans l'instantané.
Sélectionnez l'onglet Java Filters (Filtres Java) pour
inclure ou exclure des filtres Java ;
créer de nouveaux filtres ;
supprimer des filtres existants ;
restaurer les filtres par défaut.
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, ... )
Pour les constructeurs, nom-méthode est <init>.
Voici quelques exemples :
Pour exclure tous les constructeurs, activez la case Exclude (Exclure) et ajoutez le filtre suivant :
*.<init>(*)
Pour exclure tous les constructeurs ayant un unique paramètre org.w3c.dom.Element, activez la case Exclude (Exclure) et ajoutez le filtre suivant :
*.<init>(org.w3c.dom.Element)
Pour exclure toutes les classes d'Identity Manager, activez la case Exclude (Exclure) et ajoutez les filtres suivants :
"com.waveset.*" "com.sun.idm.*"
Pour instrumenter uniquement votre code personnalisé, désactivez la case Exclude (Exclure), supprimez le filtre * include initial puis ajoutez le filtre suivant :
"com.yourcompany.*"
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.
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.
L'onglet Miscellaneous (Divers) comporte les options suivantes :
Prune snapshot nodes where execution time is 0 (Élaguer les nœuds d'instantané lorsque le temps d'exécution est 0) :
Désactivez cette option (valeur par défaut) si vous voulez que l'instantané inclue les informations d'appel pour toutes les entités exécutée, même de celles dont le temps d'exécution est null.
Il peut être utile de disposer du nombre des appels même pour les nœuds sans temps d'exécution.
Activez cette option pour supprimer ces nœuds et mieux pouvoir vous concentrer sur les données de profilage les plus pertinentes. De plus, activer cette option peut permettre de limiter considérablement la taille de l'instantané du profileur.
Automatically Open Browser Upon Profiler Start (Ouvrir automatiquement le navigateur au démarrage du profileur) :
Activez cette option (valeur par défaut) lorsque vous lancez le profileur pour ouvrir automatiquement un navigateur qui pointe sur l'instance d'Identity Manager dont le profilage est en cours.
Désactivez cette option si vous ne voulez pas ouvrir de navigateur.
Include Java Sources in Snapshot (Inclure les sources Java dans l'instantané) :
Activez cette option (valeur par défaut) pour inclure les sources Java pour toutes les méthodes Java référencées par les données de profilage dans l'instantané. Vous devriez toujours utiliser ce paramètre pour les instantanés dans le champ. Custom Java est relativement petit et se révèle un atout précieux pour le support.
Ne désactivez cette option que si vous profilez Identity Manager et disposez de l'ensemble de la source d'Identity Manager.
Dans ce cas, il ne convient pas d'inclure la source d'Identity Manager car cela pourrait créer des instantanés gigantesques. (pour plus d'informations, voir Mode de localisation et de gestion de la source par le profileur).
L'affichage du profileur d'IDM se compose des zones suivantes :
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.
La zone Controls (Contrôles) contient quatre icônes, comme décrit dans le tableau suivant :
Icône |
Nom |
Objectif |
---|---|---|
|
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. |
|
Stop Identity Manager Profiler (Arrêter le profileur d'Identity Manager) |
Arrête le profileur. |
|
Reset Collected Results (Réinitialiser les résultats recueillis) |
Réinitialise l'ensemble des résultats de profil recueillis à ce stade. |
|
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. |
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.
La zone Profiling Results (Résultats de profilage) contient deux icônes, qui sont décrites dans le tableau suivant :
Icône |
Nom |
Objectif |
---|---|---|
|
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. |
|
Reset Collected Results (Réinitialiser les résultats recueillis) |
Réinitialise l'ensemble des résultats de profil recueillis à ce stade. |
La zone Saved Snapshots (Instantanés enregistrés) contient la liste de tous les instantanés enregistrés.
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 :
Open (Ouvrir) : cliquez sur ce bouton pour ouvrir les instantanés enregistrés dans la fenêtre Snapshot View (Affichage des instantanés).
Vous pouvez aussi double-cliquer sur un instantané de la liste des instantanés enregistrés pour l'ouvrir.
Delete (Supprimer) : sélectionnez un instantané dans la liste des instantanés enregistrés puis cliquez sur ce bouton pour le supprimer.
Save As (Enregistrer sous) : sélectionnez un instantané dans la liste puis cliquez sur ce bouton pour l'enregistrer à l'extérieur dans un emplacement arbitraire.
Load (Charger) : cliquez sur ce bouton pour ouvrir un instantané depuis un emplacement arbitraire dans la fenêtre Snapshot View (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 :
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 :
Call Tree (Arborescence d'appels) : liste tous les nœuds.
Les nœuds de niveau supérieur peuvent être les suivants :
Méthodes Thread.run() pour les divers threads d'arrière-plan du système.
Par exemple, si vous avez activé le profilage Java, vous verrez la méthode ReconTask.WorkerThread.run().
Synchronisation des requêtes
Par exemple, si vous affichez l'URL idm/login.jsp, vous verrez une entrée de niveau supérieur pour idm/login.jsp. Les données affichées dans la colonne Time (Temps) pour cette entrée représente le temps total pour cette requête (ou ces requêtes). Les données affichées dans la colonne Invocations (Appels) représentent le nombre total d'appels à cette page. Vous pouvez ensuite approfondir encore ces données pour savoir quels sont les appels qui rentrent dans ce temps.
L'arborescence des appels contient également les nœuds Self Time. Les valeurs de self time correspondent au temps passé dans le nœud proprement dit (pour plus d'informations, voir Remarques sur les statistiques.)
Colonne Time (Temps) : indique le temps passé dans chaque nœud lorsque le nœud en question est appelé par son nœud parent. Les pourcentages donnés sont fonction du temps du parent.
Colonne Invocations (Appels): liste le nombre de fois où chaque nœud a été appelé depuis son parent.
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 :
Self Time (Self time) : répertorie le temps total passé dans chaque nœud.
Invocations (Appels) : liste le nombre total de fois où chaque nœud a été appelé depuis son parent.
Time (Temps) : répertorie le temps total passé dans chaque nœud et dans l'ensemble de ses enfants.
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.
Les valeurs des données Time (Temps) et Invocations (Appels) ont une autre signification dans l'affichage Traces inverses :
Time (Temps) : les valeurs de cette colonne correspondent au temps passé dans le nœud racine lorsque celui-ci est appelé depuis une chaîne d'appels donnée.
Invocations (Appels) : les valeurs de cette colonne correspondent au nombre de fois où le nœud racine a été appelé depuis une chaîne d'appels donnée.
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.
Les valeurs des données Time (Temps) et Invocations (Appels) ont la même signification que dans l'affichage Arborescence d'appels.
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 :
|
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 :
|
Utilisez 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.
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 |
---|---|---|
|
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. |
|
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. |
|
Bouton Save As (Enregistrer sous, dans la zone Saved Snapshots (Instantanés enregistrés)). |
Enregistre un instantané dans un emplacement externe, arbitraire. |
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.
Sélectionnez Fichier -> New Project (Nouveau projet).
Lorsque l'assistant New Project (Nouveau projet) s'affiche, spécifiez ce qui suit puis cliquez sur Next (Suivant) :
Dans la liste Categories (Catégories), sélectionnez Web pour indiquer le type de projet que vous créez.
Dans la liste Projects (Projets), sélectionnez Identity Manager Project (Projet Identity Manager).
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)).
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.
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.
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.
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
Démarrez le profileur. Continuez par l'Étape 3 : Démarrage du profileur..
Utilisez les instructions figurant dans Avant de commencer pour augmenter la mémoire pour votre serveur et la JVM Netbeans.
Utilisez l'une des méthodes décrites dans Présentation pour démarrer le profileur.
Vous pouvez spécifier les options de profilage lorsque la boîte de dialogue Profiler Options (Options du profileur) s'affiche.
Continuez par l' Étape 4 : Définition des options du profileur
Pour des informations détaillées sur l'ensemble des différentes options du profileur, reportez-vous à Spécification des options du profileur.
Dans le cadre de ce didacticiel, spécifiez les options suivantes pour le profileur :
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.
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) :
Cliquez sur New (Nouveau) : un nouveau champ vierge s'affiche dans le bas de la colonne Filter (Filtre).
Saisissez com.waveset.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).
Cliquez de nouveau sur New (Nouveau).
Saisissez com.sun.idm.* dans ce nouveau champ puis sélectionnez la case Exclude (Exclure).
Cliquez sur OK pour exécuter le profileur.
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.
Saisissez le mot de passe configurator, sélectionnez la case à cocher (Se rappeler le mot de passe) puis cliquez sur OK pour continuer.
Connectez-vous lorsque la fenêtre Identity Manager s'affiche.
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.
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.
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é.
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.
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.
Dans Identity Manager, sélectionnez de nouveau Tâches du serveur -> Exécuter des tâches puis cliquez sur ProfilerTutorialWorkflow1.
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).
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.
Développez le nœud /idm/task/taskLaunch.jsp, vous pourrez voir que ProfilerTutorialWorkflow1 a pris six secondes.
Développez le nœud ProfilerTutorialWorkflow1. Vous remarquerez que activity2 a pris quatre secondes et activity1 deux.
Développez activity2.
Vous remarquerez que action1 a pris deux secondes et action2 deux.
Développez action1, vous verrez que invoke> a aussi pris deux secondes.
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.
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).
Sélectionnez l'onglet CPU: <date><temps pour revenir à votre instantané.
Développez le nœud invoke>. Vous remarquerez que le profileur a passé deux secondes dans la méthode Java ProfilerTutorialExample.example().
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.
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).
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.)
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.
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.)
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).
Sélectionnez l'instantané enregistré puis cliquez sur Open (Ouvrir) pour l'ouvrir de nouveau.
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.
Fermez de nouveau l'instantané.
La prochaine partie de ce didacticiel explique comment profiler une ManualAction de flux de travaux.
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.
Cliquez sur Save (Enregistrer) pour afficher le schéma du processus.
Sélectionnez de nouveau Tâches du serveur -> Exécuter des tâches.
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).
Cliquez maintenant sur ProfilerTutorialWorkflow2 dans Identity Manager.
Lorsque le formulaire vierge s'affiche de nouveau, cliquez sur Enregistrer.
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).
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.
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().
Vous pouvez double-cliquer sur <block> pour afficher la source.
Cette section contient des corrections de la documentation pour l'aide en ligne.
La page d'aide de « Configurer les rapports » contient la phrase suivante, qui doit être ignorée :
Les polices doivent également être ajoutées à la machine virtuelle Java (JVM) afin de garantir l'affichage correct des graphes.
Cette phrase est fausse et doit être remplacée par : Il est inutile d'ajouter des polices au JVM pour afficher correctement les textes dans le rapport au format PDF.