Dieser Abschnitt enthält neue und berichtigte Informationen, die nach der Veröffentlichung der Identity Manager 8.1-Dokumentation bekannt wurden.
Die Informationen sind wie folgt unterteilt:
Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager 8.1 Business Administrator’s Guide:
Die folgenden Informationen werden dem Kapitel „Security“ (Sicherheit) hinzugefügt:
Identity Manager bietet jetzt eine neue Authentifizierungsalternative „Wiederherstellung der Anmeldedaten“ zur Anmeldung mit Authentifizierungsabfrage „Passwort vergessen“. Diese Authentifizierungsmethode „Wiederherstellung der Anmeldedaten“ implementiert eine Option zur Verschleierung der Meldungen, die für alle Fehlermeldungen verwendet wird und stets die gleiche generische Ergebnismeldung anzeigt. Dies erfolgt, um dem „Account Harvesting“, der Ermittelung von Zugangsdaten entgegenzuwirken. Grundsätzlich verwendet diese Methode zur Wiederherstellung der Anmeldedaten das gleiche System wie die Methode „Benutzer-ID vergessen“. Beide nutzen die gleichen Konfigurationsattribute. Der wesentliche Unterschied besteht darin, dass „Wiederherstellung der Anmeldedaten“ auch das Benutzerpasswort zurücksetzt und sowohl die Anmeldedaten als auch das Passwort an die E-Mail-Adresse des Benutzers sendet. (ID-18052)
Die Methode „Wiederherstellung der Anmeldedaten“ kann so eingerichtet werden, dass sie den Anmeldeversuch mit Authentifizierungsabfrage ersetzt, indem die Schaltfläche für das vergessene Passwort umgeleitet wird, oder sie kann als neue Schaltfläche „Wiederherstellung der Anmeldedaten“ auf den Anmeldeseiten implementiert werden. Beide Methoden werden konfiguriert, indem Sie die Systemkonfigurationsdatei bearbeiten.
Zum Umleiten der Schaltfläche „Passwort vergessen“ an die Methode „Wiederherstellung der Anmeldedaten“ konfigurieren Sie folgende Parameter:
ui.web.user.questionLogin.forceLoginRecovery = true ui.web.admin.questionLogin.forceLoginRecovery = true |
Zum Verwenden der Schaltfläche „Wiederherstellung der Anmeldedaten“ anstelle der Schaltfläche „Passwort vergessen“ konfigurieren Sie die folgenden Parameter:
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 |
Die Option zur Verschleierung von Meldungen, die die Methode „Wiederherstellung der Anmeldedaten“ bei der Bekämpfung des Account Harvesting unterstützt, ist standardmäßig in den loginRecovery.jsp-Dateien aktiviert. Sie können die gleiche Option in den lookupUserId.jsp-Dateien einrichten.
Dieser Abschnitt enthält neue und korrigierte Informationen für das Handbuch Sun Identity Manager 8.1 System Administrator’s Guide.
Die folgenden Themen werden behandelt:
Die folgenden Aufgaben wurden in Identity Manager Version 8.0 vom Adapter- in das Aufgaben-Paket verschoben. Sie müssen die Pfade aktualisieren, wenn Sie die Rückverfolgung für eine dieser Aufgaben aktiviert haben oder wenn benutzerdefinierte Aufgabendefinitionen auf diese Pakete verweisen.
Alter Paketname |
Neuer Paketname |
---|---|
com.waveset.adapter.ADSyncFailoverTask |
com.waveset.task.ADSyncFailoverTask |
com.waveset.adapter.ADSyncRecovery<„SolBook linebreak><„SolBook linebreak>CollectorTask |
com.waveset.task.ADSyncRecoveryCollectorTask |
com.waveset.adapter.SARunner |
com.waveset.task.SARunner |
com.waveset.adapter.SourceAdapterTask |
com.waveset.task.SourceAdapterTask |
Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Deployment Guide.
Im Abschnitt Adding Localization Support for the WIC in Sun Identity Manager Deployment Guide wird beschrieben, wie Exportschema-Strings auf der Seite „Data Exporter-Typkonfiguration“ in eine andere Sprache übersetzt werden. Die Anweisungen sollten jedoch einen Hinweis enthalten, dass diese Schritte nur von Kunden durchgeführt werden müssen, die keine der offiziell unterstützten Sprachen verwenden. Die offiziell unterstützten Sprachen sind Vereinfachtes Chinesisch, Traditionelles Chinesisch, Koreanisch, Japanisch, Deutsch, Spanisch, Französisch, Italienisch und Portugiesisch (Brasilien). (ID-19264)
Eine JAR-Lokalisierungsdatei, die in einer lokalisierten WICMessages.properties-Datei enthalten ist, wird mit Identity Manager 8.1 ausgeliefert. Wenn Sie ein lokalisiertes Identity Manager-System verwenden, können Sie lokalisierte WICMessages.properties-Meldungen anzeigen. Beispielsweise können Sie mit lang=ja auf die URL für die Identity Manager Administratorbenutzeroberfläche in einem Browser zugreifen.
Das in diesem Abschnitt verwendete Beispiel ist ungeeignet. Da Deutsch eine unterstützte Sprache ist, müssen deutsche Benutzer die in diesem Abschnitt aufgeführten Schritte nicht ausführen.
In diesem Handbuch fehlt die folgende Beschreibung der Anmeldefehlercodes: (ID-5657)
Identity Manager bietet die folgenden Fehlercodes, die benutzerdefinierte Codes prüfen können, um den Anmeldestatus zu ermitteln. Die tatsächlichen String-Werte sind die numerischen Werte in Klammern (z. B. 101 oder 102). Die Datei Constants.java enthält die folgenden Fehlercodes:
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;
Die Beschreibung der Systemkonfigurationsobjekte muss die folgenden Informationen zu diesen Attributen enthalten:
ProvisioningDisabledUserShouldThrow – Wenn dieses Attribut auf „true“ gesetzt ist, wird jeder Versuch der Bereitstellung eines deaktivierten Benutzers für eine Ressource verhindert und eine Fehlermeldung erzeugt. Ist dieses Attribut nicht auf „true“ gesetzt, wird die Bereitstellung weiterhin verhindert, aber es wird keine Fehlermeldung erzeugt. (ID-20064)
security.delegation.historyLength – Legt die Anzahl der vorherigen Delegierungen fest, die aufgezeichnet werden. (ID-13331)
runPasswordLoginOnSuccess – Ist dieses Attribut auf „true“ gesetzt, führt Identity Manager den Ablauf für eine Anmeldung über das Passwort aus, wenn ein Benutzer die Authentifizierungsfragen korrekt beantwortet. In der Standardeinstellung lautet der Wert für diese Eigenschaft „false“. (ID-10030)
PasswordSyncThreshold - Ist die Passwortsynchronisation für eine Ressource aktiviert, für die Identity Manager auch Passwortänderungen initiieren kann, können Sie mit diesem Attribut verhindern, dass bereits benutzte Passwörter erneut verwendet werden. (ID-7887) Wenn Sie eine Passwortänderung in Identity Manager initiieren, wird das Passwort in der Ressource zurückgesetzt und die PasswordSync-Bibliothek informiert Identity Manager über die Änderung. Identity Manager vergleicht dann das „lastPasswordDate“ für das Benutzerobjekt mit der aktuellen Zeit. Ist der Unterschied niedriger als der Wert für „PasswordSyncThreshold“, ignoriert Identity Manager die Passwortänderung. Auf diese Weise können zusätzliche oder unnötige Passwortänderungen ignoriert werden.
PasswordSyncResourceExcludeList – Enthält eine Liste mit Ressourcennamen, die von einer Synchronisierung immer ausgeschlossen werden sollen.(ID-3275)
process.handleNativeChangeToAccountAttributes – Wenn dieses Attribut auf „true“ gesetzt ist, wird eine Prüfung des Attributwerts aktiviert. Standardmäßig ist diese Eigenschaft deaktiviert. (Hinweis: Diese Eigenschaft aktiviert eine Attributwertprüfung sowohl für den Abstimmungsprozess als auch für den Provisioner.) (ID-3275)
sources.subject – Gibt den Anmeldenamen des Administrators an, der als Eigentümer der Quelladapter-Aufgabe zugewiesen ist (ID-19694)
sources.host – Gibt den Server an, auf dem die Quelladapter-Aufgabe ausgeführt wird.
security.saveNoValidateAllowedFormsAndWorkflows – Führt die IDs der Formulare und Arbeitsabläufe auf, die als eine „SaveNoValidate“-Aktion verarbeitet werden. Alle sonstigen Formulare und Arbeitsabläufe werden als eine „Save“-Aktion verarbeitet. Wenn diese Liste nicht vorhanden ist, wird das Verhalten für alle Formulare und Arbeitsabläufe beibehalten (alle Formulare und Arbeitsabläufe werden als „SaveNoValidate“ verarbeitet). (ID-19474)
Mit Data Exporter können von Identity Manager verwaltete oder verarbeitete Daten in regelmäßigen Abständen zur Weiterverarbeitung in DBMS-Tabellen exportiert werden. Der Exportprozess kann in verschiedenen Bereichen angepasst werden, das heißt, es ist ein Eingriff durch den Benutzer erforderlich, um das gewünschte Verhalten zu erreichen. Die für Data Exporter entscheidenden Identity Manager-Konfigurationsobjekte werden beibehalten und entsprechend aktualisiert. Einige Anpassungen von Data Exporter finden jedoch in Dateien innerhalb der Web-Anwendung statt. Für diese Dateien ist eine besondere Vorgehensweise erforderlich.
Während der Aktualisierung überschreibt Identity Manager alle nicht modifizierten Data Exporter-Dateien in den Verzeichnissen $WSHOME und $WSHOME/exporter. Wenn Sie Änderungen an Data Exporter-Dateien vorgenommen haben, lässt der Aktualisierungsprozess Ihre modifizierte Version unberührt und installiert die neuere Version der Datei unter $WSHOME/patches/Identity_Manager_8_1_0_0_ Datum/filesNotInstalled. Wenn Sie die neuen Funktionen mit den von Ihnen vorgenommenen Anpassungen kombinieren möchten, ist dies nur manuell möglich.
Häufig werden die folgenden Dateien im Verzeichnis $WSHOME angepasst:
model-export.dtd model-export.xml model-export.xsl exporter/exporter.jar exporter/create_warehouse.* exporter/drop_warehouse.* exporter/hbm/*.hbm.xml
Die von Ihnen durchzuführenden Aktualisierungsschritte hängen davon ab, ob Sie Data Exporter in der Version 8.0 angepasst haben und was Sie mit Data Exporter in der Version 8.1 planen.
Wenn Sie Data Exporter in der Version 8.0 angepasst haben und die 8.1-Funktionen implementieren möchten:
Verwerfen Sie das Warehouse-Schema.
Aktualisieren Sie Identity Manager.
Erstellen Sie das Schema mit der neuen DDL im Verzeichnis $WSHOME/exporter neu.
Es gibt keine Schema-Aktualisierungsskripten, mit denen Sie ein Schema mit vorhandenen Daten modifizieren können. Wenn Sie also das Überschreiben der Daten verhindern wollen, müssen Sie die Daten zunächst exportieren und dann wieder importieren. Das 8.1 Warehouse-Schema ist hinsichtlich der Tabellen und Felder kompatibel mit der vorherigen Version, obwohl in der Version 8.1 neue Tabellen und Felder zu den bestehenden Tabellen hinzugefügt wurden. Auch die Feldreihenfolge wurde geändert. Aus diesem Grund dürfen Sie nur die reinen Daten exportieren. Führen Sie keinen DDL- und Daten-Export durch.
Führen Sie Ihre Anpassungen mit den neuen 8.1 Exporter-Dateien zusammen. Wenn die Datei model-export.xml angepasst wurde, erstellen Sie die Datei exporter.jar neu.
Laden Sie das neue Warehouse-Schema.
Wenn Sie Data Exporter in der Version 8.0 angepasst haben und die 8.1-Funktionen nicht implementieren möchten:
Sie können auf die Version 8.1 aktualisieren, ohne die zusätzlichen Schritte auszuführen. Wenn Sie jedoch auf den 8.1 Exporter aktualisieren, aber die Warehouse-DDL nicht aktualisieren, zeigt die Seite „Warehouse-Konfiguration“ eine Fehlermeldung an, in der darauf hingewiesen wird, dass die EXT_ADMINGROUP-Tabelle fehlt. Dies deutet darauf hin, dass zwar neue 8.1-Objekte vorhanden sind, die alte 8.0 Warehouse-DDL aber noch immer geladen ist.
Wenn Sie Data Exporter in der Version 8.0 nicht angepasst haben und die 8.1-Funktionen nicht implementieren möchten:
Verwerfen Sie das Warehouse-Schema.
Aktualisieren Sie Identity Manager.
Laden Sie das neue Warehouse-Schema.
Die Daten im Warehouse bleiben unberührt. Sie müssen die DDL nicht ändern, wenn die Datei model-export.xml angepasst wurde. Wenn die Datei model-export.xml nicht angepasst wurde, müssen Sie die neue DDL laden.
Nachdem 8.1 installiert und die 8.1-Version der Datei „model-export.xml“ eingefügt wurde, können Sie die neuen Dateitypen und -attribute sehen, wenn Sie die Schema-Datei unter http://server: port/idm/model-export.xml anzeigen. Die neuen Typen und Attribute sind mit der Versionsnummer 8.1 gekennzeichnet.
Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Deployment Reference.
In diesem Kapitel fehlt die folgende Beschreibung zum Hinzufügen einer geheimen Frage zur Passwortbestätigung für Formulare: (ID-7604)
Sie können die Formulareigenschaft „RequiresChallenge“ verwenden, um ausgewählten Formularen eine geheime Frage zur Passwortbestätigung hinzuzufügen. Ist diese Funktion aktiviert, stellt Identity Manager dem aktuell angemeldeten Administrator eine geheime Frage zu seinem Passwort, bevor die Anforderung verarbeitet wird. Diese Option wird von den folgenden Formularen unterstützt:
UserForm (Registerkarten-Benutzerformular, Assistent-Benutzerformular, Standard-Benutzerformular)
changePassword (standardmäßig, Benutzerpasswort ändern-Formular)
resetPassword (standardmäßig, Benutzerpasswort zurücksetzen-Formular)
Diese Eigenschaft ist für jedes Formular auf andere Weise angegeben.
Um einem Benutzerformular eine Geheimfrage zur Passwortbestätigung hinzuzufügen, fügen Sie das folgende „RequiredElement“-Element ein und ersetzen dabei die Angaben für „password“, „email“ und „fullname“ entsprechend:
<Property name='RequiredChallenge'> <List> <String>password</String> <String>email</String> <String>fullname</String> </List> </Property> |
Der Wert der Eigenschaft ist eine Liste mit einem oder mehreren der folgenden Benutzeransicht-Attributnamen: applications, adminRoles, assignedLhPolicy, capabilities, controlledOrganizations, email, firstname, fullname, lastname, organization, password, resources, roles.
Um einem „changePassword“- oder „resetPassword“-Formular eine Geheimfrage zur Passwortbestätigung hinzuzufügen, fügen Sie das folgende <RequiresChallenge>-Element ein und ersetzen dabei die Angaben für „password“, „email“ und „fullname“ entsprechend:
<Property name='RequiresChallenge' value='true'/>
Dabei lautet der Wert der Eigenschaft entweder „true“ oder „false“.
Wenn die Eigenschaft im Formular auf „true“ gesetzt ist, stellt Identity Manager dem aktuellen Administrator, der eine Änderung des Passworts anfordert, mit dem er sich bei Lighthouse angemeldet hat, eine Geheimfrage. Kann die Geheimfrage nicht korrekt beantwortet werden (das heißt, das aktuelle Administratorpasswort wird nicht korrekt eingegeben), verweigert Identity Manager die Änderung. Wurde die Geheimfrage korrekt beantwortet, lässt Identity Manager die Änderungsanforderung zu. Beide Formulare zur Passwortverwaltung unterstützen die Verwendung der Formulareigenschaft 'RequiresChallenge'. Ist diese Eigenschaft auf „true“ gesetzt, wird der Benutzer aufgefordert, das alte Passwort einzugeben, nachdem er das neue Passwort angegeben hat.
Sie können zwei benutzerdefinierte Nachrichtenkatalogschlüssel erstellen, mit denen verhindert wird, dass Identity Manager die Versionsinformationen anzeigt, wenn ein Benutzer den Mauszeiger auf der Schaltfläche „Hilfe“ platziert. Der Schlüssel UI_END_USER_VERSION blendet die Versionsinformationen in der Endbenutzeroberfläche aus, der Schlüssel UI_VERSION führt die gleiche Funktion in der Administratorbenutzeroberfläche aus.
Setzen Sie den Wert dieses Schlüssels auf eine leere Zeichenfolge, um zu verhindern, dass Versionsinformationen angezeigt werden.
In dem folgenden Beispiel wird die Anzeige der Versionsinformationen in beiden Benutzeroberflächen verhindert.
<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>
In dem Kapitel „Forms“ (Formulare) fehlt die folgende Abhandlung: (ID-18869)
Standardmäßig gibt es zwei Implementierungen des Formulars zum Ändern des Passworts:
Das Formular zum Ändern des Endbenutzer-Passworts ist das Standardformular zum Ändern eines Passwortes. Es enthält eine einfache Reihe von Feldern, mit denen der Benutzer sein Passwort ändern kann. Die Passwortrichtlinien für alle Ressourcen, die dem Benutzer zugewiesen sind, werden gesammelt und zusammengefasst, und Identity Manager übernimmt die Passwortänderung für alle zugewiesenen Ressourcen.
Das Formular für eine allgemeine Passwortänderung ist in beiden Benutzeroberflächen (Administrator und Endbenutzer) vorhanden. Es enthält Informationen zu den Ressourcen, die dem Benutzer zugeordnet sind, und ermöglicht es dem Benutzer, individuell auszuwählen, für welche Ressourcen Identity Manager das Passwort ändern soll.
Beide Formulare zur Passwortverwaltung unterstützten die Verwendung der Formulareigenschaft 'RequiresChallenge'. Ist diese Eigenschaft auf „true“ gesetzt, wird der Benutzer aufgefordert, das alte Passwort einzugeben, nachdem er das neue Passwort angegeben hat.
In den Kapiteln zu den Formularen und Arbeitsabläufen fehlt die folgende Abhandlung über das Zuweisen eines Geltungsbereichs für <Variable>-Elemente: (ID-14915)
Identity Manager weist allen <Variable>-Elementen beim Deklarieren des Elementes einen Geltungsbereich zu. Wenn Sie einem Bereichsattribut keinen Wert zuweisen, weist Identity Manager den Wert „local“ zu. Dieser Wert bedeutet, dass die Variable nur innerhalb des XPRESS-Abschnitts zugänglich ist, in dem sie deklariert wird.
Weitere Variablen-Attribute, die den Geltungsbereich definieren, sind:
input – Deklariert, dass das <Variable>-Element einen lokalen Geltungsbereich besitzt und dass der Wert vom Aufrufer initialisiert werden kann.
output – Deklariert, dass das <Variable>-Element einen lokalen Geltungsbereich besitzt, aber dem Aufrufer zurückgegeben werden kann.
external – Deklariert, dass das <Variable>-Element einen nicht lokalen Geltungsbereich besitzt. Das heißt, dass Zuweisungen zu dieser Variablen dazu führen, dass sie in dem Geltungsbereich erfolgen, in dem sie zuerst deklariert wurde.
In diesem Kapitel fehlt die folgende Abhandlung zur Whitelist-Funktion von Identity Manager. (ID-19474)
Mit der Whitelist-Funktion von Identity Manager können Formulare und Arbeitsabläufe, die die „SaveNoValidate“-Aktion verwenden, gegen eine Liste mit IDs oder Formularnamen geprüft werden. Identity Manager prüft die Weißbücher entweder auf Formularnamen oder Formulareigentümer-IDs. Die ID-Liste mit der Bezeichnung „saveNoValidateAllowedFormsAndWorkflows“ befindet sich im „security“-Attribut des Systemkonfigurationsobjekts. Befindet sich der Formularname oder die Eigentümer-ID in der Whitelist, kann das Formular bzw. der Arbeitsablauf die „SaveNoValidate“-Aktion verwenden. Befindet sich der Formularname oder die Eigentümer-ID nicht in der Whitelist, wird das Formular bzw. der Arbeitsablauf mit der „Save“-Aktion verarbeitet. Ist diese Liste nicht vorhanden, können alle Formulare und Arbeitsabläufe als „SaveNoValidate“ verarbeitet werden.
Um diese Funktion in Ihrer Bereitstellung zu implementieren, müssen Sie alle Formulare oder Arbeitsabläufe mit „SaveNoValidate“ zur „SaveNoValidateAllowedFormsAndWorkflows“-Liste im Systemkonfigurationsobjekt hinzufügen. Um die IDs oder Formularnamen anzuzeigen, die Sie hinzufügen müssen, prüfen Sie das Systemprotokoll (syslog) oder aktivieren die Ablaufverfolgungsebene 4 für „com.waveset.ui.util.GenericEditForm“ und übermitteln alle benutzerdefinierten Formulare oder Arbeitsabläufe, die „SaveNoValidate“ verwenden. Es wird eine Warnmeldung protokolliert, in der auch die ID enthalten ist. Wenn Sie „null“ Formularnamen im Systemprotokoll erhalten, prüfen Sie, ob das Formular in der ausgeführten TaskDefinition über ein „name“-Attribut verfügt.
In dem Kapitel „Workflow“ (Arbeitsablauf) fehlt die folgende Abhandlung zum „handleNativeChangeToAccountAttributes“-Arbeitsablauf: (ID-3275):
Jedes Mal, wenn Identity Manager eine native Änderung an den Werten eines prüffähigen Attributs eines Ressourcenkontos erfasst (das heißt, eine Änderung, die nicht von Product_IDMgr; durchgeführt wurde), führt es den Arbeitsablauf „handleNativeChangeToAccountAttributes“ aus, der diesem Systemkonfigurationsobjekt-Attribut zugeordnet ist:
<Attribute name='process'> <Object> <Attribute name='handleNativeChangeToAccountAttributes' value='Audit Native Change To Account Attributes'/> </Object> </Attribute>
Dieser Arbeitsablauf protokolliert native Änderungsereignisse in einem Ereignisprotokoll, wenn Sie den Überwachungsfilter „Changes Outside Lighthouse“ (Änderungen außerhalb von Lighthouse) aktiviert haben. Anderenfalls wird das Ereignis von Identity Manager ignoriert. Achtung: Achten Sie sorgfältig darauf, welche Methoden Sie von einem Arbeitsablauf aus aufrufen, der den oben aufgeführten Standard-Arbeitsablauf ersetzt.
Da Identity Manager diesen Arbeitsablauf immer dann startet, wenn das Abrufen eines Ressourcenkontos eine native Änderung aufdeckt, sollte keine Methode oder kein Arbeitsablauf aufgerufen werden, der einen weiteren Abruf des gleichen Ressourcenkontos auslöst. Beispielsweise würde eine unendliche Schleife entstehen, wenn Sie eine „WorkflowServices“-Methode aufrufen, die die Benutzeransicht zusammensetzt: getView(User),checkoutView(User) und possibly checkinView(User).
Da Identity Manager jede native Änderung durch Ausführen eines Arbeitsablaufs verarbeitet, können Sie das native Änderungsereignis erfassen und es entweder durch Ersetzen oder Hinzufügen zum standardmäßigen Arbeitsablauf für eine native Änderung verarbeiten. So können Sie z. B. wählen, eine E-Mail an einen Administrator oder Benutzer zu senden, das Ereignis in einer Datenbank zu erfassen, eine Aktualisierung in eine Warteschlange einzureihen, die diese native Änderung wieder rückgängig macht oder sogar diese native Änderung einbeziehen und an andere Ressourcen weiterzusenden.
In dem Kapitel „Workflow“ (Arbeitsablauf) dieses Handbuchs fehlt die folgende Beschreibung, wie das Thema oder der Administrator einer Quelladapter-Aufgabe angegeben wird. (ID-19694).
Sie können einer Quelladapter-Aufgabe ein Thema oder einen Administrator zuordnen und den Server zuweisen, auf dem die Aufgabe ausgeführt wird, indem Sie die folgenden Attribute des Systemkonfigurationsobjekts ändern. „source.subject“ gibt den Anmeldenamen des Administrators an, der als Eigentümer dieser Aufgabe zugewiesen ist. „sources.host“ gibt den Server an, auf dem die Aufgabe ausgeführt wird. Die neuen Werte im Konfigurationsobjekt lauten standardmäßig:
<Attribute name='sources'> <Object> <Attribute name='hosts'/> <!-- any host is the default --> <Attribute name='subject' value='Configurator'/> </Object> </Attribute>
Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager 8.1 Resources Reference.
In der Abhandlung zu den Identity-Konnektoren fehlen die folgenden Informationen über die Implementierung der „run()“-Methode durch den ConnectorAdapter: Die an den „runResourceAction“-Service übergebenen Argumente werden als direkte Skriptvariablen an das Skript (definiert in der „ResourceAction“) übergeben. (ID-19856)
Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Service Provider 8.1 Deployment.
Das „ResourceAttribute“-Element kann ein „ValidationPolicy“-Element enthalten. Eine Validierungsrichtlinie stellt sicher, dass der Wert, den ein Benutzer auf der Seite „Ressourcenparameter“ angibt, die in einem separaten Richtlinienobjekt definierten Anforderungen erfüllt.
Das folgende Beispiel erzwingt, dass der Adapter die Port-Richtlinie verwendet, um sicherzustellen, dass der angegebene Wert gültig ist. Die standardmäßige Port-Richtlinie prüft, ob es sich bei dem Wert um eine ganze Zahl zwischen 1 und 65536 handelt.
<ResourceAttribute name=.Port. value=.123.> <ValidationPolicy> <ObjectRef type=.Policy. id=.#ID#PortPolicy. name=.Port Policy./> </ValidationPolicy> </ResourceAttribute>
In diesem Abschnitt werden einige häufig gestellte Fragen zu Identity Manager-IDE beantwortet.
Die Informationen sind in die folgenden Kategorien unterteilt:
Welche Netbeans-Version sollte ich verwenden?
Antwort:Verwenden Sie die Netbeans-Version, die in der Identity Manager-Produktdokumentation für die Version des von Ihnen verwendeten Netbeans-Plugins angegeben ist.
Sie sollten stets genau die gleiche Version verwenden, die in der Dokumentation angegeben ist, da auch Patch-Releases die Funktionalität beeinträchtigen können.
Das Netbeans-Plugin funktionierte, ich habe Änderungen vorgenommen, und jetzt funktioniert es nicht mehr. Was könnte die Ursache sein?
Antwort:Solche Probleme werden im Allgemeinen von beschädigten Dateien im Verzeichnis .netbeans verursacht. Durch Löschen des Verzeichnisses .netbeans und Neuinstallation des NetBeans-Plugins wird dieses Problem normalerweise beseitigt. (Durch Löschen Sie des Verzeichnisses .netbeans wird das NetBeans-Plugin praktisch deinstalliert. Sie verlieren zwar alle Ihre benutzerspezifischen Einstellungen, Projekte sind jedoch sicher und werden nicht gelöscht.)
Gehen Sie dazu wie folgt vor:
Beenden Sie NetBeans.
Löschen Sie das Verzeichnis .netbeans.
Starten Sie NetBeans.
Installieren Sie das NetBeans-Plugin.
Starten Sie NetBeans neu.
Das Erstellen und Ausführen eines Projekts dauert sehr lange, und die Identity Manager-IDE scheint viele Dateien zu kopieren. Was könnte die Ursache sein?
Antwort:Dieses Problem kann unter folgenden Bedingungen auftreten:
Sie verwenden die Version 7.0 bzw. 7.1 des Identity Manager-IDE-Plugins.
Verwenden Sie das Identity Manager-IDE 8.0-Plugin. Zur Leistungsverbesserung wurden an der Configuration Build Environment (CBE) von Identity Manager-IDE 8.0 einige Änderungen vorgenommen.
Es kann sein, dass Clean-Befehle unnötigerweise ausgeführt werden.
Bei Verwendung von Clean Project bzw. Clean And Build Project löscht die Identity Manager-IDE das gesamte image-Verzeichnis, das mehrere Tausend Dateien enthält. Beim nächsten Build muss die Identity Manager-IDE alle diese Dateien von idm-staging kopieren.
Zur effektiven Verwendung der Identity Manager-IDE muss Ihnen klar sein, wann die Clean-Befehle eingesetzt werden sollten. Weitere Informationen dazu finden Sie im Abschnitt „When to Use Clean“ in der Identity Manager-IDE-Datei README.txt.
Welche Dateien sollten nach der Erstellung eines Identity Manager-Projekts in ein Quellcodeverwaltungssystem eingecheckt werden?
Antwort:Weitere Informationen dazu finden Sie im Abschnitt „CVS Best Practices“ in der Identity Manager-IDE-Datei README.txt.
Frage:Wie verwende ich die CVS-Funktionen zur Projektverwaltung optimal?
Antwort:Weitere Informationen dazu finden Sie im Abschnitt „CVS Best Practices“ in der Identity Manager-IDE-Datei README.txt.
Frage:Wann werden Objekte in das Repository importiert?
Antwort:Weitere Informationen finden Sie unter Arbeiten mit dem Repository.
Frage:Wie füge ich zu einem Projekt eine neue JAR-Datei hinzu?
Antwort:Weitere Informationen dazu finden Sie im Abschnitt „How to add a new JAR dependency“ in der Identity Manager-IDE-Datei README.txt.
Welches Repository sollte ich für ein Sandbox-Repository verwenden?
Antwort:Verwenden Sie für eine Sandbox ein eingebettetes Repository. Dies gilt insbesondere dann, wenn Sie Identity Manager 7.1 (oder höher) verwenden, da diese Version ein HsSQL-Repository besitzt. Wenn Sie kein eingebettetes Repository verwenden, verlieren Sie Funktionalität.
Weitere Informationen dazu finden Sie im Abschnitt „Working with the Repository“ in der Identity Manager-IDE-Datei README.txt.
Frage:Wann werden Objekte automatisch importiert?
Antwort:Die Identity Manager-IDE muss speziell zum automatischen Importieren von Objekten konfiguriert werden.
Gehen Sie dazu wie folgt vor:
Wählen Sie aus dem IDM-Menü die Option „Repository > Manage Embedded Repository“.
Aktivieren Sie im Dialogfeld „Manage Embedded Repository“ die Option „Automatically Publish Identity Manager Objects“.
Diese Option ist nicht bei Identity Manager-Fernprojekten und bei der Nutzung eines eigenen Repositorys verfügbar.
Wählen Sie „Project > Run Project“ bzw. „Project > Debug Project“.
Die Identity Manager-IDE importiert automatisch alle Objekte, die seit der letzten Projektausführung geändert wurden.
Das automatische Herausgeben von Identity Manager-Objekten verlängert die Zeit, die zum Hochfahren des Servers benötigt wird. Zur Minimierung der Serverstartzeit sollten Sie diese Option deaktivieren und Objekte explizit (manuell) in das Repository laden.
Wie können Objekte am effektivsten geladen werden„
Antwort:Wählen Sie eine der folgenden Vorgehensweisen, um geänderte Objekte neu zu laden:
Klicken Sie mit der rechten Maustaste auf die geänderten Objekte in der Projekthierarchie und wählen Sie anschließend im angezeigten Kontextmenü die Option „Upload Object“.
Zum Laden mehrerer Objekte müssen Sie beim Markieren der Objekte in der Liste die STRG-Taste gedrückt halten.
Markieren Sie alle geänderten Objekte und wählen Sie anschließend im IDM-Menü die Option „Repository > Upload Objects“. Es wird ein Dialogfeld angezeigt, sodass Sie die hochzuladenden Objekte auswählen können.
Alle diese Methoden laden die betreffenden Objekte direkt auf den Server, sodass es keine Probleme mit Antwortzeiten des Cache-Speichers gibt und diese somit sehr viel schneller als die Optionen „Run Project“ bzw. „Debug Project“ ausgeführt werden. Die Hochladefunktion für Objekte ist bei allen Repositorys verfügbar.
Der integrierte Netbeans-Anwendungsserver wird jetzt automatisch heruntergefahren, wenn Sie eine der folgenden Projektoperationen ausführen:
Bereinigung eines Projekts
Erstellen einer Delta-Distribution
Erstellen einer JAR-Datei
Fehlersuche im Projekt
Verwalten eines eingebetteten Repositorys
Projektprofilierung
Ausführen eines Projekts
Der Debugger der Identity Manager-IDE ist sehr langsam. Was könnte die Ursache sein?
Antwort:Zur Leistungsverbesserung des Debuggers sollten Sie stets Folgendes sicherstellen:
Der Tomcat HTTP-Monitor sollte stets deaktiviert sein. Gehen Sie dazu wie folgt vor:
Klicken Sie in der Identity Manager-IDE auf die Registerkarte „Laufzeit“.
Klappen Sie den Serverknoten auf und klicken Sie mit der rechten Maustaste auf „Bundled Tomcat“. Wählen Sie dann im Kontextmenü die Option „Eigenschaften“ aus.
Deaktivieren Sie das Kontrollkästchen „HTTP-Monitor aktivieren“ und schließen Sie das Dialogfeld.
Beim nächsten Start von Tomcat wird der HTTP-Monitor deaktiviert.
Wenn Sie keine Fehlersuche an Java-Quellcode durchführen, sollten Sie „Project < Run Project“ wählen und dann auf „Attach Debugger< Identity Manager XML Object Debugger“ klicken, um nur den XPRESS-Debugger zu verwenden.
Durch Auswahl von „Projekt > Debug Project“ für Fernprojekte der Identity Manager-IDE werden der XPRESS-Debugger und der Java-Debugger gestartet, und der Java-Debugger verlangsamt das System erheblich.
Ich sehe keine Haltepunkte im Debugger. Was könnte die Ursache sein?
Antwort:Das Setzen von Haltepunkten kann in den folgenden Situationen verhindert werden:
Sie haben NBM gerade installiert, Netbeans jedoch noch nicht gestartet.
Ihr XML-Code enthält das Wrapper-Element <Waveset>.
Die Identity Manager-IDE ignoriert praktisch alle Dateien, die mit dem Wrapper-Element <Waveset> beginnen, da die Identity Manager-IDE dieses Element als Datei mit mehreren Objekten interpretiert.
Folgende Module funktionieren nicht mit Dateien, die mehrere Objekten enthalten:
Debugger
Regeltester
Formularvorschau
Alle Editoren
Dateiimportmodul
Dateihochlademodul
Diff-Objektmodul
Dateien, die mehrere Objekten enthalten, können praktisch nur importiert werden. Die einzigen Dateien, die ein Wrapper-Element <Waveset> enthalten, sollten die Dateien auf der obersten Ebene einer Projekthierarchie sein.
Ich habe im Debugger einen Haltepunkt gesetzt, und dieser Haltepunkt kann nicht temporär deaktiviert werden. Was könnte die Ursache sein„
Antwort:Sie sollten zwei Dinge überprüfen:
Der Objektname darf keinen CBE-Platzhalter (%%) enthalten. CBE-Platzhalter sind in Objektnamen nicht zugelassen.
Überprüfen Sie, dass der von Ihnen gewünschte Code auch tatsächlich ausgeführt wird. Fügen Sie eine Verfolgung (Trace) ein und prüfen Sie, ob etwas ausgegeben wird.
Warum steht der Designmodus bei der Entwicklung von Netbeans-Regeln nicht für Regelbibliotheken zur Verfügung?
Antwort:Der Designmodus ist in der Explorerhierarchie der Projektansicht verfügbar. Führen Sie dazu die folgenden Schritte aus:
Klappen Sie den Bibliotheksknoten auf und klicken Sie mit der rechten Maustaste auf eine Regel.
Wählen Sie aus dem angezeigten Kontextmenü die Option „Eigenschaften“ aus und klicken Sie dann auf „Body“.
In Identity Manager wurden und werden Ressourcenobjekte und Funktionen nicht lokalisiert, denn es handelt sich in erster Linie um Beispiele, die während der Initialisierung von Identity Manager geladen werden (über init.xml). Zudem können die Attribute von Objekttypen in verschiedenen Bereitstellungsumgebungen beim Kunden variieren, je nachdem, wie stark die Bereitstellung angepasst wurde. Im Folgenden sind die Bereiche aufgeführt, in denen die Benutzer auf englische Ausdrücke stoßen können: (ID-16349)
Standardbenutzerformulare und Prozesszuordnungen
Beispiel: Benutzer bearbeiten > Sicherheit > Pulldown-Menüs „Benutzerformular“
Beispiel: Konfigurieren > Formular- und Prozesszuordnungen
Attributnamen von Konfigurationsobjekten
Beispiel: Konfigurieren > Benutzeroberfläche, zusammengesetzte Namen wie displayPasswordExpirationWarning
Standardaufgaben
Aufgabenvorlagen
Beispiel: Serveraufgaben > Aufgaben konfigurieren > Namen in der Tabelle „Verfügbare Aufgaben“
Aufgabentypbezeichnungen
Beispiel: Serveraufgaben > Aufgaben ausführen > Elemente in der zweiten Spalte der Tabelle „Verfügbare Aufgaben“
Aufgabendefinitionen
Beispiel: Serveraufgaben > Aufgaben suchen > zweites Pulldown-Menü zum Auswählen der Aufgabendefinition
Standardberichtsnamen
Beispiel: Berichtsnamen unter Berichte > Berichte ausführen > Berichtstabelle
Standardrichtliniennamen
Beispiel: Konformität > Richtlinien verwalten > Namen und Beschreibungen von Überwachungsrichtlinien
Standardfähigkeitsnamen
Beispiel: Benutzer bearbeiten > Sicherheit > Verfügbare Fähigkeiten
Standardberichts- und -diagrammnamen
Prozess-/Arbeitsablauf-Diagramm-Applets
Identity Manager besitzt ein Profilerdienstprogramm, das Ihnen in Ihrer Bereitstellung beim Auffinden von Leistungsproblemen bei Formularen, Java, Regeln, Arbeitsabläufen und XPRESS hilft.
Formulare, Java, Regeln, Arbeitsabläufe und XPRESS können Leistungs- und Skalierungsprobleme verursachen. Der Profiler analysiert, wieviel Zeit diese verschiedenen Bereiche zur Ausführung benötigen. Somit können Sie feststellen, ob sie zu Leistungs- und Skalierungsproblemen beitragen und – wenn dies der Fall ist – welche Teile dieser Objekte diese Probleme verursachen.
In diesem Abschnitt wird die Arbeit mit dem Identity Manager-Profiler beschrieben. Darüber hinaus finden Sie hier eine Anleitung für das Finden und Eliminieren von Leistungsproblemen in Ihrer Bereitstellung.
Die Informationen sind wie folgt unterteilt:
Der Identity Manager-Profiler wird erst ab Version 7.1 Update 1 unterstützt.
Dieser Abschnitt enthält eine Übersicht der Leistungsmerkmale und Funktionalität des Identity Manager-Profilers. Die Informationen sind wie folgt unterteilt:
Mit dem Profiler können Sie folgende Funktionen ausführen:
Erstellen von „Snapshots“ für Profiling-Daten
Unter einem Snapshot versteht man die kumulative Gesamtheit der Profilingdaten seit dem letzten Löschen aller gesammelten Profilermessergebnisse.
Snapshotergebnisse können in vier verschiedenen Datenansichten dargestellt werden:
Ansicht der Aufrufhierarchie - zeigt eine Hierarchieansicht mit den Aufrufzeiten und -dauern im gesamten System an.
Hotspot-Ansicht - zeigt eine flache Knotenliste mit den aufsummierten Aufrufzeiten unabhängig von der aufrufenden Routine an.
Rückverfolgungsansicht - zeigt einen invertierten Aufrufstack mit allen Aufrufketten, von denen ein bestimmter Knoten (der sog. Root-Knoten) aufgerufen wurde, an.
Ansicht der aufgerufenen Routinen - zeigt eine Gesamtaufrufhierarchie für den Root-Knoten (unabhängig von dessen aufrufender Kette) an.
Sie müssen angeben, welche Informationenen im Snapshot enthalten sein sollen.
Sie können alle Elemente von Formularen, Arbeitsabläufen und XPRESS-Objekten angeben oder den Inhalt auf eine bestimmte Menge spezifischer Elemente beschränken.
Sie können festlegen, welche Java-Methoden und -Konstruktoren mit dem Profiling analysiert werden sollen. Die Instrumentierung von Identity Manager- und benutzerspezifischen Klassen wird unterstützt.
Sie sollten Ihre Projekt-Snapshots wie folgt verwalten.
Speichern Sie den Snapshot im Verzeichnis nbproject/private/idm-profiler Ihres Projekts oder in einem beliebigen anderen Verzeichnis außerhalb Ihres Projekts.
Im Abschnitt „Saved Snapshots“ der IDM-Profileransicht können Sie sich eine Liste aller gespeicherten Snapshots anzeigen lassen.
Sie können Snapshots innerhalb Ihres Projekts oder aus einem anderen Verzeichnis außerhalb Ihres Projekts heraus öffnen.
Sie können Snapshots löschen.
Sie können bestimmte Knoten nach Namen suchen:
In diesem Abschnitt wird beschrieben, wie der Profiler Quellcode für die folgenden Identity Manager-Objekte findet und verwaltet:
In der Aufrufhierarchie- bzw. Hotspot-Ansicht können Sie auf einen Knoten, der einer Java-Methode, einem Arbeitsablauf, einem Formular, einer Regel oder einem XPRESS-Objekt entspricht, doppelklicken.
Wenn Sie mit dem Profiler einen Snapshot erstellen, evaluiert der Server alle Profilingdaten und findet heraus, von welchem Quellcode die betreffenden Daten abhängen. Der Server ruft dann diesen Quellcode aus dem Repository ab und fügt ihn in den Snapshot ein. Deswegen können Sie sicher sein, dass die in einem Snapshot angezeigten Identity Manager-Objekte auch wirklich den Zustand besitzen, den sie während der Erstellung des Snapshot einnahmen.
Dieser Prozess erhöht zwar die Snapshotgröße, die Quellcodegröße beträgt aber nur einen Bruchteil der Gesamtobjektgröße. So können Sie Snapshots an den Technischen Support von Sun senden, ohne einzelne Dateien schicken zu müssen.
Wenn Sie einen Snapshot von Java-Quellcode erstellen, lädt der Client den Snapshot herunter und sucht dann in diesem Snapshot alle referenzierten Java-Quellen aus dem Projekt heraus. Beim Speichern des Snapshots komprimiert und archiviert der Client den Quellcode und hängt ihn an das Ende des Snapshots an.
Wenn Sie dann den Snapshot anzeigen und zum Java-Quellcode gehen, überprüft der Client zunächst den Inhalt des Snapshots. Wenn der Client den Inhalt dort nicht finden kann, überprüft er den Projektinhalt. Dieser Vorgang ermöglicht das Senden eines Snapshots mit Profiling-Daten aus benutzerspezifischem Java-Code und Identity Manager-Code.
Bei Snapshots aus Java-Quellcode kann nicht vorausgesetzt werden, dass die der Code mit dem Server auf dem aktuellsten Stand bzw. stets verfügbar ist.
Die folgenden Abschnitte enthalten Informationen, die bei der Auswertung der vom Profiler ermittelten Ergebnisse zu berücksichtigen sind.
Zur Berechnungen der Eigenausführungszeit eines Root-Knotens subtrahiert der Profiler die Ausführungszeiten aller vom Root-Knoten aufgerufenen Routinen von der Gesamtausführungszeit des Knotens ab.
Deswegen fließt die Ausführungszeit eines uninstrumentierten, vom Root-Knoten aufgerufenen Knotens in die Eigenausführungszeit des Root-Knotens ein Wenn die Eigenausführungszeit eines Root-Knotens relativ groß ist, sollten sie der Ursache unbedingt nachgehen. Es könnte beispielsweise sein, dass Sie nicht die passenden Methoden analysieren und deswegen an der falschen Stelle suchen.
Nehmen wir z. B. an, dass Methode-A Methode-B aufruft.
Die Ausführungszeit von Methode-A beträgt insgesamt 10-s (dies schließt den Aufruf von B ein) und der Aufruf von B dauert insgesamt 10-s.
Wenn sowohl Methode-A als auch Methode-B instrumentiert sind, wird dies im Aufrufstack festgehalten. Sie sehen, dass Methode-A eine Eigenausführungszeit von 0-s und B von 10-s besitzt. Das heißt, die gesamten 10-Sekunden wurden in Methode-B verbracht). Wenn B jedoch nicht instrumentiert ist, sehen Sie nur, dass der Aufruf von Methode-A 10-s dauert und die Eigenausführungszeit von Methode-A 10-s beträgt. So kann es sein, dass Sie annehmen, dass das Problem statt in Methode-B in Methode-A liegt.
Ihnen fällt vielleicht auf, dass die Eigenausführungszeiten von JSPs während der Erstcompilierung sehr hoch sind. Wenn Sie die erfassten Ergebnisse löschen und die Seite dann erneut anzeigen, ist der Wert für die Eigenausführungszeit bedeutend niedriger.
Wegen vorhandener Einschränkungen bei der Java-Instrumentierungsstrategie erscheinen Erstaufrufe to this() oder super() auf der gleichen Aufrufebene wie der Konstruktor statt darunter. Hierzu ein Beispiel:
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) |
Lassen Sie sich nicht von einer scheinbar langen Zeit verwirren, die in Dämon-Threads von Identity Manager (z.-B. ReconTask.WorkerThread.run() oder TaskThread.WorkerThread.run()) verbracht wurde. Die meiste Zeit hier wird im Leerlauf, d.-h. mit dem Warten auf Ereignisse verbracht. Sie müssen diese Aufrufe näher untersuchen, um zu sehen, wieviel Zeit in solchen Threads beim eigentlichen Auftreten eines Ereignisses verbracht wird.
In diesem Abschnitt wird beschrieben, wie Sie den Profiler starten und wie Sie mit den einzelnen Funktionen der grafischen Benutzeroberfläche des Profilers arbeiten. Die Informationen sind wie folgt unterteilt:
Da der Profiler sehr speicherintensiv ist, sollten Sie die Speicherressourcen für den Server und die Netbeans Java Virtual Machine (JVM) erhöhen.
So erhöhen Sie Speicherressourcen für den Server:
Öffnen Sie das Netbeans-Fenster und klicken Sie auf die Registerkarte „Laufzeit“.
Klappen Sie den Serverknoten auf, klicken Sie mit der rechten Maustaste auf „Bundled Tomcat“ und wählen Sie aus dem Menü „Eigenschaften“.
Demarkieren Sie in der Registerkarte „Verbindung“ das Kontrollkästchen „HTTP-Monitor aktivieren“, wenn das Dialogfeld „Server Manager“ angezeigt wird.
Klicken Sie auf die Registerkarte „Plattform“ und setzen Sie die VM-Optionen auf -Xmx1024M.
So erhöhen Sie Speicherressourcen für die Netbeans JVM:
Öffnen Sie die Datei Netbeans-InstallationsVerz\etc\netbeans.conf und suchen Sie die folgende Zeile:
netbeans_default_options="-J-Xms32m -J-Xmx ...
Setzen Sie den Wert -J-Xmx auf -J-Xmx 1024M.
Speichern und schließen Sie die Datei.
Nach Abschluss dieses Vorgangs können Sie den Profiler wie im nächsten Abschnitt beschrieben starten.
Der Profiler kann aus dem Identity Manager-IDE-Fenster mit einer der folgenden Methoden gestartet werden:
Klicken Sie auf das Symbol „Start Identity Manager Profiler on Main Project“ auf der Menüleiste.
Das Symbol „Start Identity Manager Profiler on Main Project“ ist aktiviert, wenn das Identity Manager-Projekt die Version 7.1 Update 1 oder höher hat.
Wählen Sie in der Menüleiste „Window > IDM Profiler“.
Im Explorer-Fenster wird das Fenster „Identity Manager Profiler“ angezeigt. Wählen Sie in diesem Fenster ein Identity Manager-Projekt im Dropdown-Menü „Current Project“ aus, dann klicken Sie auf das Symbol „Start Identity Manager Profiler“ im Bereich „Controls“.
Klicken Sie mit der rechten Maustaste auf ein Projekt im Projektfenster und wählen Sie anschließend im Popup-Menü „Start Identity Manager Profiler“.
Wählen Sie ein Projekt im Projektfenster aus und wählen Sie anschließend in der Menüleiste „IdM > Start Identity Manager Profiler“.
Nach dem Start des Profilers wird das Dialogfeld „Profiler Options“ angezeigt, sodass Sie die von Ihnen gewünschten Optionen für das Profiling einstellen können. Eine Anleitung zum Einstellen dieser Optionen finden Sie im Abschnitt Festlegen von Optionen für das Profiling.
In diesem Abschnitt werden die Funktionen der grafischen Benutzeroberfläche des Profilers beschrieben und wie Sie mit diesen arbeiten können. Die Informationen sind wie folgt unterteilt:
Das Dialogfeld „Profiler Options“ enthält folgende Registerkarten:
Mit den Optionen in diesen Registerkarten legen Sie fest, für welche Objekte das Profiling ausgeführt werden soll und welche Elemente im Profil anzuzeigen sind.
Klicken Sie auf „OK“, um den Profiler zu starten, wenn Sie die Optionen für das Profiling festgelegt haben. Je nach Projektkonfiguration führt der Profiler einen der folgenden beiden Vorgänge aus:
Bei regulären Identity Manager-Projekten mit einer eingebetteten Identity Manager-Instanz führt der Profiler ein vollständiges Build durch, stellt das Projekt auf dem NetBean-Anwendungsserver bereit und startet den Profiler.
Bei regulären Identity Manager-Projekten mit einer externen Identity Manager-Instanz oder Identity Manager-Fernprojekten verbindet sich der Profiler mit der für das Projekt konfigurierten Identity Manager-Instanz.
Sie können „IdM > Set Identity Manager Instance“ auswählen, um die Aktion der Identity Manager-Instanz für das Projekt festzulegen.
Die Registerkarte „Mode“ enthält folgende Optionen:
IDM Objects Only: Wählen Sie diese Option, um das Profiling für Formulare, Regeln, Arbeitsabläufe und XPRESS-Objekte durchzuführen. Es wird kein Profiling für Java-Objekte ausgeführt.
Java and IDM Objects: Wählen Sie diese Option, um das Profiling für Formulare, Java, Regeln, Arbeitsabläufe und XPRESS-Objekte durchzuführen.
Die Option „Java and IDM Objects“ ist für reguläre Identity Manager-Projekte mit externer Identity Manager-Instanz bzw. Identity Manager-Fernprojekte nicht verfügbar.
Sie können den Modus nicht ändern, während das Profiling läuft. Wenn Sie den Modus ändern möchten, muss der Profiler angehalten werden.
Die Registerkarte „IDM Object Filters“ enthält folgende Optionen:
Show IDM Object details
Markieren Sie dieses Kontrollkästchen, um alle Formulare, Arbeitsabläufe und XPRESS-Elemente, die ausgeführt werden, in den Snapshot einzubeziehen.
Demarkieren Sie dieses Kontrollkästchen, wenn nur die folgende Elemente im Snapshot enthalten sein sollen:
<invoke>
<new>
<Rule>
<Form>
<WFProcess>
<ExScript>
<ExDefun>
<FieldRef>
<Action> (für Zusatzaktionen von Arbeitsablauf-Anwendungen)
Einbeziehen von anonymem Quellcode
Unter anonymen Quellcode versteht man Formulare (oder Teile davon), die dynamisch generiert werden (z.-B. Anmeldeformulare oder Formulare, die auf fehlende Felder hinweisen) und keinem der persistenten Formulare im Identity Manager-Repository entsprechen.
Markieren Sie dieses Kontrollkästchen, wenn anonymer Quellcode in den Snapshot einbezogen werden soll.
Demarkieren Sie dieses Kontrollkästchen, wenn kein anonymer Quellcode im Snapshot enthalten sein soll.
In der Registerkarte „Java Filters“ können Sie:
Java-Filter einbeziehen bzw. ausschließen
neue Filter erstellen
vorhandene Filter löschen
Standardfilter wiederherstellen
Java-Filter sind in Bezug auf Methodenmuster gegeben und werden in ein- bzw. ausschließenden, auf dem kanonischen Methodennamen basierenden Mustern angegeben. Kanonische Methodennamen sehen wie folgt aus:
Klassenname_mit_vollständigem_Pfad.Methodenname(Parametertyp-1, Parametertyp-2, ...)
Für Konstruktoren lautet der Methodenname <init>.
Hier sind einige Beispiele:
Zum Ausschließen von Konstruktoren markieren Sie das Kontrollkästchen „Exclude“ und fügen den folgenden Filter hinzu:
*.<init>(*)
Zum Ausschließen aller Konstruktoren mit einem einzigen Parameter org.w3c.dom.Element markieren Sie das Kontrollkästchen „Exclude“ und fügen den folgenden Filter hinzu:
*.<init>(org.w3c.dom.Element)
Zum Ausschließen aller Identity Manager-Klassen markieren Sie das Kontrollkästchen „Exclude“ und fügen die folgenden Filter hinzu:
"com.waveset.*" "com.sun.idm.*"
Wenn Sie nur benutzerspezifischen Code instrumentieren wollen, deaktivieren Sie das Kontrollkästchen „Exclude“, entfernen den Filter * include zu Beginn und fügen dann den folgenden Filter hinzu:
"com.yourcompany.*"
Die letzten beiden Beispiele haben gegenwärtig den gleichen Effekt, da Filter nur auf benutzerspezifische Klassen und Identity Manager-Klassen angewendet werden.
Falls erforderlich, können Sie durch entsprechendes Ändern der folgenden Zeilen in der Datei build.xml noch andere JAR-Dateien instrumentieren. Zum Beispiel:
<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> |
Standardmäßig sind in der Konfiguration alle benutzerspezifischen und die meisten Identity Manager-Klassen enthalten. Eine Reihe von Identity Manager-Klassen sind zwangsläufig nicht enthalten, da deren Einbeziehung den Profiler funktionsunfähig machen würde.
So sind z.-B. Klassen aus den Arbeitsablauf-, Formular- und XPRESS-Programmen nicht enthalten, da der Profiler beim Profiling von Java- und Identity Manager-Objekten unverständliche Ausgaben generieren würde.
Bitte beachten Sie, dass Java-Filter eine erheblich feinere Filtergranularität als IDM-Objektfilter bieten. Java-Instrumentierungen verlangsamen die Ausführungszeit erheblich, was bei den Profiling-Ergebnissen zu drastischen Abweichungen führen kann. Da Identity Manager-Objekte interpretiert und nicht kompiliert werden, kann der Einfluss der Instrumentierung auf die Ausführungszeit vernachlässigt werden. So gibt es beispielsweise keinen Grund, Arbeitsablauf-A auszuschließen und Arbeitsablauf-B einzubeziehen usw.
Sie können Java-Filter nicht ändern, während das Profiling läuft. Wenn Sie die Java-Filter ändern möchten, muss der Profiler angehalten werden.
Die Registerkarte „Miscellaneous“ enthält folgende Optionen:
Prune snapshot nodes where execution time is 0:
Deaktivieren Sie die Option (standardmäßig deaktiviert), wenn der Snapshot Aufrufdaten für alle ausgeführten Entitäten (auch für die, deren Ausführungszeit 0 ist) enthalten soll.
Unter Umständen ist die Verfolgung der Aufrufanzahl bei Knoten nützlich, deren Ausführungszeit gleich null ist.
Aktivieren Sie diese Option, um diese Knoten auszuschließen. Damit können Sie sich auf die relevantesten Profiling-Daten konzentrieren. Darüber hinaus kann durch Aktivieren dieser Option die Größe eines Profiler-Snapshots erheblich reduziert werden.
Automatically Open Browser Upon Profiler Start:
Aktivieren Sie diese Option (standardmäßig aktiviert), wenn beim Start des Profilers automatisch ein Browser geöffnet werden soll, in dem die Identity Manager-Instanz angezeigt wird, für die das Profiling ausgeführt wird.
Deaktivieren Sie diese Option, wenn kein Browser geöffnet werden soll.
Include Java Sources in Snapshot:
Aktivieren Sie diese Option (standardmäßig aktiviert), wenn Java-Quellcode für alle Java-Methoden enthalten sein soll, die im Snapshot der Profiling-Daten referenziert werden sollen. Diese Einstellung sollte stets für Snapshots unter Produktionsbedingungen verwendet werden. Benutzerspezifischer Java-Code ist beansprucht wenig Ressourcen, und es wichtig, diesen für die Fehlersuche zur Verfügung zu haben.
Deaktivieren Sie diese Option, wenn Sie das Profiling für Identity Manager durchführen und der vollständige Identity Manager-Quellcode verfügbar ist.
In solchen Fällen sollte der Identity Manager-Quellcode nicht in den Snapshots enthalten sein, da dadurch die Snapshot-Größe extrem erhöht wird. (Weitere Informationen finden Sie unter Wie findet und verwaltet der Profiler Quellcode.)
Die IDM-Profileransicht enthält die folgenden Bereiche:
Der Bereich „Current Project“ besteht aus einem Dropdown-Menü, in dem alle aktuellen Projekte aufgeführt sind. In diesem Menü wählen Sie das Projekt aus, für das ein Profiling durchgeführt werden soll.
Der Bereich „Controls“ enthält vier Symbole. Diese sind in der folgenden Tabelle beschrieben:
Symbol |
Name |
Zweck |
---|---|---|
|
Start Identity Manager Profiler |
Startet den Profiler und öffnet das Dialogfeld „Profiler Options“. |
|
Stop Identity Manager Profiler |
Stoppt den Profiler. |
|
Reset Collected Results |
Löscht alle bis hierhin erfassten Profiling-Ergebnisse. |
|
Modify Profiling |
Öffnet das Dialogfeld „Profiler Options“ erneut, sodass Sie an den Einstellungen Änderungen vornehmen können. |
Im Bereich „Status“ wird gemeldet, ob der Profiler mit dem Host eine Verbindung herstellen konnte, und es werden Informationen zum Starten, Laufen und Stoppen des Profilers angezeigt.
Der Bereich „Profiling Results“ enthält zwei Symbole. Diese sind in der folgenden Tabelle beschrieben:
Symbol |
Name |
Zweck |
---|---|---|
|
Start Identity Manager Profiler |
Startet den Profiler und öffnet das Dialogfeld „Profiler Options“. |
|
Reset Collected Results |
Löscht alle bis hierhin erfassten Profiling-Ergebnisse. |
Der Bereich „Saved Snapshots“ enthält eine Liste aller gespeicherten Snapshots.
Eine Anleitung zum Speichern von Snapshots finden Sie im Abschnitt Speichern eines Snapshots.
Darüber hinaus dienen die folgenden Schaltflächen zum Verwalten dieser Snapshots:
Open: Klicken Sie auf diese Schaltfläche, um einen gespeicherten Snapshot im Fenster „Snapshot View“ zu öffnen.
Sie können auch auf einen Snapshot in dieser Liste doppelklicken, um ihn zu öffnen.
Delete: Wählen Sie einen Snapshot in der Liste „Saved Snapshots“ aus und klicken auf diese Schaltfläche, um den Snapshot zu löschen.
Save As: Wählen Sie einen Snapshot in der Liste aus und klicken Sie auf diese Schaltfläche, um den Snapshot in einem beliebigen externen Verzeichnis zu speichern.
Load: Klicken Sie auf diese Schaltfläche, um einen in einem beliebigen externen Verzeichnis gespeicherten Snapshot im Fenster „Snapshot View“ zu öffnen.
Beim Öffnen eines Snapshots werden die Ergebnisse in der Snapshot-Ansicht angezeigt. Diese befindet sich rechts oben in der Identity Manager-IDE.
Ein Snapshot bietet verschiedene Anzeigemöglichkeiten für Profiling-Daten. Diese werden in den folgenden Abschnitten beschrieben:
Die Ansicht der Aufrufhierarchie zeigt eine Hierarchieansicht mit den Aufrufzeiten und -dauern im gesamten System an.
Diese Tabelle enthält drei Spalten:
Spalte „Call Tree“: Hier werden alle Knoten aufgeführt.
Knoten der obersten Ebene können folgende Entitäten sein:
Thread.run()-Methoden für verschiedene Hintergrund-Threads im System
Wenn Sie beispielsweise Java-Profiling aktiviert haben, sehen Sie hier die Methode ReconTask.WorkerThread.run().
Zeitdauern für Anforderungen
Wenn Sie beispielsweise die URL idm/login.jsp angezeigt haben, sehen Sie in der obersten Ebene einen Eintrag für idm/login.jsp. Die Spalte „Time“ zeigt die Gesamtzeit, die für diese Anforderung (bzw. Anforderungen) benötigt wurde. Die Spalte „Invocations“ zeigt, wie oft diese Seite insgesamt aufgerufen wurde. Sie können diese Daten näher untersuchen, um festzustellen, welche Aufrufe zur Gesamtzeit beigetragen haben.
Die Ansicht der Aufrufhierarchie enthält darüber hinaus Knoten mit Eigenausführungszeiten. Unter Eigenausführungszeit versteht man die Zeit, die ein Knoten für seine eigene Ausführung benötigt. (Weitere Informationen dazu finden Sie unterInterpretationshinweise zu den Statistiken.)
Spalte „Time“: Die Zeit, die in jedem Knoten verbracht wurde, als dieser Knoten von seiner übergeordneten Routine aufgerufen wurde. Die Werte sind Prozentsätze relativ zur Ausführungszeit der aufrufenden Routine.
Spalte „Invocations“: Hält fest, wie oft jeder Knoten von seiner übergeordneten Routine aufgerufen wurde.
Die Hotspot-Ansicht zeigt eine flache Knotenliste mit den aufsummierten Aufrufzeiten unabhängig von der aufrufenden Routine an.
Diese Ansicht enthält die folgenden Spalten:
Self Time: Die Gesamtzeit, die in jedem Knoten verbracht wurde.
Invocations: Hält fest, wie oft jeder Knoten insgesamt von seiner übergeordneten Routine aufgerufen wurde.
Time: Die Gesamtzeit, die in jedem Knoten und in allen von diesem Knoten aufgerufenen Unterroutinen verbracht wurde.
Die Rückverfolgungsansicht zeigt einen invertierten Aufrufstack mit allen Aufrufketten, von denen jeder Knoten aufgerufen wurde, an.
Mit diesen Statistikdaten können Sie nachvollziehen, wie viel Zeit Sie durch Eliminierung einer bestimmten Aufrufkette aus dem betreffenden Knoten einsparen würden?
Sie können die Rückverfolgungsansicht von allen anderen Snapshot-Ansichten aufrufen, indem Sie mit der rechten Maustaste auf einen Knoten klicken (der dann in der Rückverfolgungsansicht zum sog. Root-Knoten wird) und aus dem Kontextmenü die Option „Show Back Traces“ auswählen.
In der Rückverfolgungsansicht haben die Werte in den Spalten „Time“ und „Invocations“ eine andere Bedeutung:
Time: Die Werte in dieser Spalte geben die Zeit an, die im Root-Knoten verbracht wurde, wenn dieser von einer bestimmten Aufrufkette aufgerufen wird.
Invocations: Die Werte in dieser Spalte geben an, wie oft der Root-Knoten von einer bestimmten Aufrufkette aus aufgerufen wurde.
Die Ansicht der aufgerufenen Routinen zeigt eine Gesamtaufrufhierarchie für einen Knoten (den sog. Root-Knoten) unabhängig von dessen aufrufender Kette an.
Diese Statistikdaten sind bei Problembereichen nützlich, die innerhalb der Masterhierarchie von vielen Routinen aufgerufen werden, und wo Sie sich das Gesamtprofil des betreffenden Knotens ansehen möchten.
Sie können die Ansicht der aufgerufenen Routinen von allen anderen Snapshot-Ansichten aufrufen, indem Sie mit der rechten Maustaste auf einen Knoten klicken (der dann in der Rückverfolgungsansicht zum sog. Root-Knoten wird) und aus dem Kontextmenü die Option „Show Callees“ auswählen.
In der Ansicht der aufgerufenen Routinen haben die Werte in den Spalten „Time“ und „Invocations“ die gleiche Bedeutung wie bei der Ansicht der Aufrufhierarchie.
Klicken Sie in der Ansicht der Aufrufhierarchie bzw. in der Hotspot-Ansicht mit der rechten Maustaste auf einen beliebigen Knoten. Es wird ein Kontextmenü mit den in der folgenden Tabelle beschriebenen Optionen angezeigt:
Menüoption |
Beschreibung |
---|---|
GoTo Source |
Wählen Sie diese Option zur Anzeige des XML-Quellcodes für einen Knoten, der einer Java-Methode, einem Arbeitsablauf, Formular, einer Regel oder einem XPRESS-Objekt entspricht. Ausführliche Informationen zu dieser Ansicht finden Sie unter Wie findet und verwaltet der Profiler Quellcode. |
Show Back Traces |
Wählen Sie diese Option, um zur Rückverfolgungsansicht zu schalten. Ausführliche Informationen zu dieser Ansicht finden Sie unterRückverfolgungsansicht. |
Show Callees |
Wählen Sie diese Option, um zur Ansicht der aufgerufenen Routinen zu schalten. Ausführliche Informationen zu dieser Ansicht finden Sie unterAnsicht der aufgerufenen Routinen. |
Find In Hotspots |
Wählen Sie diese Option, um in der Hotspot-Ansicht einen Knoten zu suchen. Ausführliche Informationen zu dieser Ansicht finden Sie unterHotspot-Ansicht. |
List Options > Sort > |
Wählen Sie diese Option, um den Sortiermodus festzulegen. Sortierung nach:
|
List Options > Change Visible Columns |
Wählen Sie diese Option, um die angezeigten Tabellenspalten in der Ansicht der Aufrufhierarchie bzw. Hotspot-Ansicht zu ändern. Im Dialogfeld „Change Visible Columns“ können Sie eine oder mehrere der folgenden Optionen festlegen:
|
Mit dem Suchsymbol am oberen Rand der Snapshot-Ansicht können Sie in der Ansicht der Aufrufhierarchie bzw. der Hotspot-Ansicht Knoten nach Namen suchen.
Alternativ dazu können Sie in der Ansicht der Aufrufhierarchie bzw. in der Hotspot-Ansicht mit der rechten Maustaste auf einen beliebigen Knoten klicken und aus dem angezeigten Kontextmenü die Option „Find in Call Tree“ bzw. „Find in Hotspots“ auswählen.
Der Profiler bietet mehrere Möglichkeiten zum Speichern eines Snapshots. Die folgende Tabelle enthält eine Beschreibung dieser Optionen:
Symbol |
Name |
Zweck |
---|---|---|
|
Symbol „Save the Snapshot in the Project“ (am oberen Rand der Snapshot-Ansicht) |
Speichert den Snapshot im Verzeichnis nbproject/private/idm-profiler Ihres Projekts. Die im Projekt gespeicherten Snapshots werden im Bereich „Saved Snapshots“ der Profiler-Ansicht angezeigt. |
|
Symbol „Save the Snapshot Externally“ (am oberen Rand der Snapshot-Ansicht) |
Speichert den Snapshot in einem beliebigen externen Verzeichnis. |
|
Schaltfläche „Save As“ (im Bereich „Saved Snapshots“) |
Speichert den Snapshot in einem beliebigen externen Verzeichnis. |
Identity Manager enthält ein Lernprogramm (profiler-tutorial.zip), mit dem Sie lernen können, wie Sie den Profiler zur Problembehebung bei Formularen, Java-Objekten, Regeln, Arbeitsabläufen und XPRESS-Objekten nutzen.
Führen Sie die folgenden Schritte aus, um das Lernprogramm durchzuarbeiten.
Wählen Sie „File > New Project“.
Geben Sie Folgendes an, wenn der Assistent zum Erstellen neuer Projekte angezeigt wird, und klicken Sie dann auf „Weiter“:
Wählen Sie in der Liste „Categories“ den Eintrag „Web“ aus, um festzulegen, welchen Projekttyp Sie erstellen wollen.
Wählen Sie aus der Projektliste den Eintrag „Identity Manager Project“.
Wenn Sie eine Entwicklungsumgebung mit vollem Leistungsumfang erhalten möchten, müssen Sie ein reguläres Identity Manager-Projekt erstellen. Wählen Sie nicht die Option „Identity Manager Project (Remote)“ aus.
Füllen Sie im Fenster „Name and Location“ die folgenden Felder aus und klicken Sie dann auf „Weiter“.
Project Name: Geben Sie als Projektnamen Idm80 ein.
Project Location: Übernehmen Sie den standardmäßigen Speicherort oder geben Sie einen anderen Speicherort an.
Project Folder: Übernehmen Sie den Standardordner oder geben Sie einen anderen Ordner an.
Geben Sie den Ort der war-Datei von Identity Manager 8.1 ein, wenn das Dialogfeld „Identity Manager WAR File Location“ angezeigt wird. Beim Entpacken dieser Datei wird in der Regel eine idm.war-Datei im gleichen Verzeichnis erzeugt.
Klicken Sie auf „Weiter“. Das Fenster „Repository Setup“ wird angezeigt.
Sie brauchen die Standardeinstellungen in diesem Fenster nicht zu ändern. Klicken Sie auf „Fertigstellen“. Wenn im Ausgabefenster der Identity Manager-IDE die Meldung BUILD SUCCESSFUL angezeigt wird, können Sie die Dateien des Profiler-Lernprogramms extrahieren. Anweisungen dazu finden Sie unter Schritt 2: Entpacken des Profiler-Lernprogramms.
Entpacken Sie die Datei profiler-tutorial.zip in das Projekt-Stammverzeichnis. Es werden folgende Dateien extrahiert:
<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
Jetzt können Sie den Profiler starten. Gegen Sie zu Schritt 3: Starten des Profilers.
Erhöhen Sie mithilfe der Anleitung unter Vorbereitung die Speicherressourcen für den Server und die Netbeans-JVM.
Starten Sie den Profiler mit einer der beiden unter Übersicht beschriebenen Möglichkeiten.
Wenn das Dialogfeld „Profiler Options“ angezeigt wird, können Sie Optionen für das Profiling eingeben.
Gehen Sie zu Schritt 4: Festlegen der Optionen für das Profiling
Weitere Informationen zu den verschiedenen Profiler-Optionen finden Sie unter Festlegen von Optionen für das Profiling.
Für dieses Lernprogramm sollten Sie die folgenden Profiler-Optionen eingeben:
Wählen Sie in der Registerkarte „Mode“ die Option „Java and IDM Objects“, um das Profiling für Formulare, Regeln, Arbeitsabläufe, Java- und XPRESS-Objekte durchzuführen.
Klicken Sie auf die Registerkarte „Java Filters“.
Gehen Sie wie folgt vor, um alle Java-Klassen von Identity Manager außer Ihre benutzerspezifischen Java-Klassen (in diesem Fall org.example.ProfilerTutorialExample) zu deaktivieren:
Klicken Sie auf „New“. Ein neues leeres Feld erscheint am Ende der Filterspalte.
Geben Sie in das neue Feld com.waveset.* ein und markieren Sie dann das Kontrollkästchen „Exclude“.
Klicken Sie erneut auf „New“.
Geben Sie in das neue Feld com.sun.idm.* ein und markieren Sie dann das Kontrollkästchen „Exclude“.
Klicken Sie auf „OK“, um den Profiler auszuführen.
Der Profiler benötigt einige Minuten zur Abarbeitung, wenn er zum ersten Mal nach einer Clean Project-Aktion an einem Projekt ausgeführt wird.
Nach Abschluss des Profiling werden Sie aufgefordert, sich anzumelden.
Geben Sie das Passwort configurator ein, aktivieren Sie das Kontrollkästchen „Remember Password“ und klicken Sie anschließend auf „OK“, um fortzufahren.
Melden Sie sich an, wenn das Identity Manager-Fenster angezeigt wird.
Normalerweise sollten Sie sich bei Identity Manager als ein anderer Benutzer statt nochmals als configurator anmelden. Sie sind im Profiler bereits als „configurator“ angemeldet, und der Sitzungspool von Identity Manager erlaubt nur einen Eintrag pro Benutzer. Mehrere Benutzereinträge können die Funktion des Sitzungspools beeinträchtigen und die feiner abgestimmte Suche nach Leistungsproblemen erschweren.
In diesem einfachen Beispiel hat dies jedoch keine Auswirkungen, sodass Sie sich als configurator/configurator anmelden können.
Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow1“.
Es kann sein, dass es einige Augenblicke dauert, bis das Lernprogramm reagiert.
Obwohl Sie jetzt schon einen Snapshot erstellen können, sollten Sie zunächst die Profiling-Ergebnisse löschen, den Profiler starten, ihn nochmals ausführen und dann erst einen Snapshot erstellen.
Am Besten ist es, den Profiler vor dem Erstellen eines Snapshots einige Male auszuführen, damit Sie sicherstellen können, dass alle Cache-Speicher vorbereitet und alle JSPs compiliert sind usw.
Durch mehrmalige Ausführung des Profilers können Sie sich auf die eigentlichen Leistungsprobleme konzentrieren. Die einzige Ausnahme von dieser Regel besteht dann, wenn beim Füllen des Cache-Speichers selbst Probleme auftreten.
Gehen Sie zur IDM-Profileransicht in der Identity Manager-IDE zurück. Klicken Sie auf das Symbol „Reset Collected Results“ im Abschnitt „Profiling Results“ (oder „Controls“), um alle bisher erfassten Profiling-Ergebnisse zu löschen.
Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow1“.
Wenn das Prozessdiagram angezeigt wird, sollten Sie zur Identity Manager-IDE zurückgehen und im Abschnitt „Profiling Results“ auf „Take Snapshot“ klicken.
Die Identity Manager-IDE lädt die Snapshots und zeigt die Ergebnisse in der rechten Fensterhälfte an.
Dieser Bereich wird als Ansicht der Aufrufhierarchie bezeichnet. In der obersten Ebene der Aufrufhierarchie sollte /idm/task/taskLaunch.jsp zusammen mit einer Zeitdauer in der Spalte „Time“ erscheinen. Die Zeit sollte zeigen, dass der gesamte Vorgang sechs oder mehr Sekunden dauerte.
Klappen Sie den Knoten /idm/task/taskLaunch.jsp auf, und jetzt sehen Sie, dass ProfilerTutorialWorkflow1 sechs Sekunden dauerte.
Klappen Sie den Knoten ProfilerTutorialWorkflow1 auf. Beachten Sie, dass activity2 vier Sekunden und activity1 zwei Sekunden dauerte.
Klappen Sie activity2 auf.
Beachten Sie, dass action1 zwei Sekunden und action2 zwei Sekunden dauerte.
Klappen Sie action1 auf. Sie sehen, dass der Aufruf (<invoke>) ebenfalls zwei Sekunden dauerte.
Doppelklicken Sie auf <invoke>, um ProfilerTutorialWorkflow1.xml zu öffnen, und markieren Sie die folgende Zeile:
<invoke name=’example’ class=’org.example.ProfilerTutorialExample’/> |
Sie sollten sehen, dass der Aufruf der Methode ProfilerTutorialExample zwei Sekunden dauerte.
Statt des Quellcodes im Projekt schauen Sie sich durch den Snapshot erfassten XML-Code an. Snapshots sind vollkommen unabhängig. (Ausführliche Informationen finden Sie unter Wie findet und verwaltet der Profiler Quellcode.)
Klicken Sie auf die Registerkarte „CPU:Datum><Uhrzeit“, um zum Snapshot zurückzukehren.
Klappen Sie den <invoke>-Knoten auf. Sie sehen, dass der Profiler zwei Sekunden in der Java-Methode ProfilerTutorialExample.example() verbracht hat.
Doppelklicken Sie auf den Methodennamen, um den Quellcode (ProfilerTutorialExample.java) zu öffnen, und markieren Sie die folgende Zeile:
Thread.sleep(2000); |
Hier liegt das Problem! Diese Methode enthält einen 2-Sekunden dauernden Sleep-Thread.
Wenn Sie zur Ansicht der Aufrufhierarchie zurückkehren, sehen Sie, dass alle 2-s-Pfade zu dieser Methode führen. Es sollten isg. drei Pfade mit einer Gesamtdauer von sechs Sekunden zu sehen sein.
Klicken Sie auf die Registerkarte „Hotspots“ am unteren Rand der Aufrufhierarchie, um die Hotspot-Ansicht zu öffnen. Sie sehen, dass die Methode ProfilerTutorialExample.example() insgesamt sechs Sekunden zur Ausführung benötigte.
(Weitere Informationen zu Hotspots finden Sie unter Arbeiten mit der Snapshot-Ansicht.)
Klicken Sie mit der rechten Maustaste auf ProfilerTutorialExample.example() und wählen Sie im Kontextmenü die Option „Show Back Traces“ aus.
Im unteren Bereich wird eine neue Registerkarte namens „Back Traces“ angezeigt.
Klappen Sie den Knoten ProfilerTutorialExample.example() in der Registerkarte „Back Traces“ auf. Sie sehen, dass diese Methode von drei verschiedenen Routinen aufgerufen wurde und jede Ausführung zwei Sekunden dauerte.
(Weitere Informationen zu Rückverfolgungen finden Sie unter Arbeiten mit der Snapshot-Ansicht.)
Klicken Sie auf das Symbol „Snapshot im Projekt speichern“, um den Snapshot zu speichern, und schließen Sie ihn.
Im Abschnitt „Saved Snapshots“ der Registerkarte „IDM Profiler“ sollte der gespeicherte Snapshot jetzt aufgeführt sein. Es kann sein, dass Sie bei längeren Listen einen Bildlauf nach unten durchführen müssen, um ihn zu sehen.
Markieren Sie den gespeicherten Snapshot und klicken Sie dann auf „Open“, um ihn wieder zu öffnen.
Mithilfe der Schaltfläche „Save As“ können Sie Snapshots extern speichern. Mithilfe der Schaltfläche „Load“ laden Sie einen Snapshot von außerhalb eines Projekts.
Schließen Sie den Snapshot wieder.
Der nächste Abschnitt dieses Lernprogramms befasst sich mit dem Profiling einer „ManualAction“ eines Arbeitsablaufs.
Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow2“.
Nach einigen Sekunden wird ein leeres Formular angezeigt.
Klicken Sie auf „Speichern“. Das Prozessdiagramm wird angezeigt.
Klicken Sie erneut auf „Serveraufgaben > Aufgaben ausführen“.
Gehen Sie zur IDM-Profileransicht der Identity Manager-IDE zurück und klicken Sie im Abschnitt „Profiling Results“ auf „Reset Collected Results“.
Klicken Sie jetzt in Identity Manager auf „ProfilerTutorialWorkflow2“.
Klicken Sie auf „Speichern“, wenn das leere Formular erneut angezeigt wird.
Klicken Sie in der IDM-Profileransicht auf „Take Snapshot“.
Nach einigen Sekunden wird in der Aufrufhierarchie ein Snapshot angezeigt. Sie sehen, dass /idm/task/workItemEdit.jsp zur Ausführung ca. sechs Sekunden benötigte. Dieses Ergebnis entspricht dem der manuellen Aktion im Arbeitsablauf.
Klappen Sie den Knoten /idm/task/workItemEdit.jsp auf. Sie sehen, dass die Ausführung aller Ableitungen im Formular ManualAction sechs Sekunden dauerte.
Klappen Sie die Knoten Derivation, displayNameForm, variables.dummy und <block> auf.
Sie sehen, dass der <block>-Knoten zur Ausführung sechs Sekunden benötigte und der Profiler in jedem Aufruf der Methode ProfilerTutorialExample.example() zwei Sekunden verbracht hat.
Sie können auf <block>doppelklicken, um den Quellcode zu sehen.
Dieser Abschnitt enthält Korrekturen an der Onlinehilfe.
Ignorieren Sie auf der Hilfeseite „Berichte konfigurieren“ den folgenden Satz:
Schriftarten sollten auch der JVM hinzugefügt werden, damit Diagramme korrekt angezeigt werden.
Dieser Satz ist falsch. Der Text im PDF-Bericht wird auch dann korrekt angezeigt, wenn Sie die Schriftarten nicht der JVM hinzufügen.