Sun Identity Manager 8.1 Versionshinweise

Kapitel 7 Erweiterungen und Korrekturen der Dokumentation

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:

Identity Manager 8.1 Business Administrator's Guide

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 8.1 System Administrator's Guide

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:

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 

Identity Manager 8.1 Deployment Guide

Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Deployment Guide.

Änderungen an der Dokumentation für Systemkonfigurationsobjekte

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)

Änderungen an Data Exporter

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.

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.

Identity Manager 8.1 Deployment Reference

Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Deployment Reference.

Formulare-bezogene Dokumentationsprobleme

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.

Einrichten der „RequiresChallenge“-Eigenschaft für Benutzerformulare

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.

Einrichten der „RequiresChallenge“-Eigenschaft für die Formulare „Passwort ändern“ und „Passwort zurücksetzen“

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.

Überschreiben der Versionsinformationen

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>

Weitere Formulare-bezogene Probleme

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.

Probleme in Arbeitsabläufen und Formularen

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.

Arbeitsablauf-bezogene Probleme

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>

Identity Manager 8.1 Resource Reference

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)

Identity Manager 8.1 Service Provider Deployment Guide

Dieser Abschnitt enthält neue und berichtigte Informationen für das Handbuch Sun Identity Manager Service Provider 8.1 Deployment.

Entwicklung von Kunden-Adaptern

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>

Identity Manager-IDE – Häufig gestellte Fragen (FAQ)

In diesem Abschnitt werden einige häufig gestellte Fragen zu Identity Manager-IDE beantwortet.

Die Informationen sind in die folgenden Kategorien unterteilt:

Arbeiten mit NetBeans

Frage:

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.


Hinweis –

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.


Frage:

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:

  1. Beenden Sie NetBeans.

  2. Löschen Sie das Verzeichnis .netbeans.

  3. Starten Sie NetBeans.

  4. Installieren Sie das NetBeans-Plugin.

  5. Starten Sie NetBeans neu.

Arbeiten mit Projekten

Frage:

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:

Frage:

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.

Arbeiten mit dem Repository

Frage:

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:

  1. Wählen Sie aus dem IDM-Menü die Option „Repository > Manage Embedded Repository“.

  2. Aktivieren Sie im Dialogfeld „Manage Embedded Repository“ die Option „Automatically Publish Identity Manager Objects“.


    Hinweis –

    Diese Option ist nicht bei Identity Manager-Fernprojekten und bei der Nutzung eines eigenen Repositorys verfügbar.


  3. 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.


    Tipp –

    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.


Frage:

Wie können Objekte am effektivsten geladen werden„

Antwort:

Wählen Sie eine der folgenden Vorgehensweisen, um geänderte Objekte neu zu laden:

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.

Arbeiten mit dem Debugger der Identity Manager-IDE


Hinweis –

Der integrierte Netbeans-Anwendungsserver wird jetzt automatisch heruntergefahren, wenn Sie eine der folgenden Projektoperationen ausführen:


Frage:

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:

Frage:

Ich sehe keine Haltepunkte im Debugger. Was könnte die Ursache sein?

Antwort:

Das Setzen von Haltepunkten kann in den folgenden Situationen verhindert werden:

Frage:

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:

Arbeiten mit Regeln

Frage:

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:

  1. Klappen Sie den Bibliotheksknoten auf und klicken Sie mit der rechten Maustaste auf eine Regel.

  2. Wählen Sie aus dem angezeigten Kontextmenü die Option „Eigenschaften“ aus und klicken Sie dann auf „Body“.

Umfang der Lokalisierung

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)

Arbeiten mit dem Identity Manager-Profiler

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:


Hinweis –

Der Identity Manager-Profiler wird erst ab Version 7.1 Update 1 unterstützt.


Übersicht

Dieser Abschnitt enthält eine Übersicht der Leistungsmerkmale und Funktionalität des Identity Manager-Profilers. Die Informationen sind wie folgt unterteilt:

Hauptfunktionen

Mit dem Profiler können Sie folgende Funktionen ausführen:

Wie findet und verwaltet der Profiler Quellcode

In diesem Abschnitt wird beschrieben, wie der Profiler Quellcode für die folgenden Identity Manager-Objekte findet und verwaltet:


Tipp –

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.


Für Formulare, Arbeitsabläufe, Regeln und XPRESS-Objekte

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.

Für Java-Quellen

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.


Hinweis –

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.


Interpretationshinweise zu den Statistiken

Die folgenden Abschnitte enthalten Informationen, die bei der Auswertung der vom Profiler ermittelten Ergebnisse zu berücksichtigen sind.

Berechnung der Eigenausführungszeit

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.

Konstruktoraufrufe

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)

Dämon-Threads

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.

Erste Schritte

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:

Vorbereitung

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:

  1. Öffnen Sie das Netbeans-Fenster und klicken Sie auf die Registerkarte „Laufzeit“.

  2. Klappen Sie den Serverknoten auf, klicken Sie mit der rechten Maustaste auf „Bundled Tomcat“ und wählen Sie aus dem Menü „Eigenschaften“.

  3. Demarkieren Sie in der Registerkarte „Verbindung“ das Kontrollkästchen „HTTP-Monitor aktivieren“, wenn das Dialogfeld „Server Manager“ angezeigt wird.

  4. Klicken Sie auf die Registerkarte „Plattform“ und setzen Sie die VM-Optionen auf -Xmx1024M.

    So erhöhen Sie Speicherressourcen für die Netbeans JVM:

  1. Öffnen Sie die Datei Netbeans-InstallationsVerz\etc\netbeans.conf und suchen Sie die folgende Zeile:

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

  2. Setzen Sie den Wert -J-Xmx auf -J-Xmx 1024M.

  3. Speichern und schließen Sie die Datei.

Nach Abschluss dieses Vorgangs können Sie den Profiler wie im nächsten Abschnitt beschrieben starten.

Starten des Profilers

Der Profiler kann aus dem Identity Manager-IDE-Fenster mit einer der folgenden Methoden gestartet werden:


Hinweis –

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.


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.

Arbeiten mit dem Profiler

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:

Festlegen von Optionen für das Profiling

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:


Hinweis –

Sie können „IdM > Set Identity Manager Instance“ auswählen, um die Aktion der Identity Manager-Instanz für das Projekt festzulegen.


Mode

Die Registerkarte „Mode“ enthält folgende Optionen:

IDM Object Filters

Die Registerkarte „IDM Object Filters“ enthält folgende Optionen:

Java Filters

In der Registerkarte „Java Filters“ können Sie:

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, ...)


Hinweis –

Für Konstruktoren lautet der Methodenname <init>.


Hier sind einige Beispiele:


Hinweis –

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.


Hinweis –

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.


Sonstiges

Die Registerkarte „Miscellaneous“ enthält folgende Optionen:

Arbeiten mit der IDM-Profileransicht

Die IDM-Profileransicht enthält die folgenden Bereiche:

Bereich „Current Project“

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.

Bereich „Controls“

Der Bereich „Controls“ enthält vier Symbole. Diese sind in der folgenden Tabelle beschrieben:

Symbol 

Name 

Zweck 

Abbildung zeigt das Symbol „Start Identity Manager Profiler“

Start Identity Manager Profiler 

Startet den Profiler und öffnet das Dialogfeld „Profiler Options“. 

Abbildung zeigt das Symbol „Stop Identity Manager Profiler“

Stop Identity Manager Profiler 

Stoppt den Profiler. 

Abbildung zeigt das Symbol „Reset Collected Results“

Reset Collected Results 

Löscht alle bis hierhin erfassten Profiling-Ergebnisse. 

Abbildung zeigt das Symbol „Modify Profiling“

Modify Profiling 

Öffnet das Dialogfeld „Profiler Options“ erneut, sodass Sie an den Einstellungen Änderungen vornehmen können. 

Bereich „Status“

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.

Bereich „Profiling Results“

Der Bereich „Profiling Results“ enthält zwei Symbole. Diese sind in der folgenden Tabelle beschrieben:

Symbol 

Name 

Zweck 

Abbildung zeigt das Symbol „Start Identity Manager Profiler“

Start Identity Manager Profiler 

Startet den Profiler und öffnet das Dialogfeld „Profiler Options“. 

Abbildung zeigt das Symbol „Reset Collected Results“

Reset Collected Results 

Löscht alle bis hierhin erfassten Profiling-Ergebnisse. 

Bereich „Saved Snapshots“

Der Bereich „Saved Snapshots“ enthält eine Liste aller gespeicherten Snapshots.


Hinweis –

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:

Arbeiten mit der Snapshot-Ansicht

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:

Ansicht der Aufrufhierarchie

Die Ansicht der Aufrufhierarchie zeigt eine Hierarchieansicht mit den Aufrufzeiten und -dauern im gesamten System an.

Diese Tabelle enthält drei Spalten:

Hotspot-Ansicht

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:

Rückverfolgungsansicht

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.


Hinweis –

In der Rückverfolgungsansicht haben die Werte in den Spalten „Time“ und „Invocations“ eine andere Bedeutung:


Ansicht der aufgerufenen Routinen

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.


Hinweis –

In der Ansicht der aufgerufenen Routinen haben die Werte in den Spalten „Time“ und „Invocations“ die gleiche Bedeutung wie bei der Ansicht der Aufrufhierarchie.


Arbeiten mit Kontextmenüoptionen

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: 

  • Keine

  • Aufrufhierarchie

  • Zeit

  • Aufrufen

  • aufsteigend

  • Absteigend

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: 

  • Call Tree: Call Tree

  • Invocations: Invocations

  • Time: Time

Suchen eines Snapshots

Mit dem SuchsymbolAbbildung zeigt das Symbol „Suche“ 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.

Speichern eines Snapshots

Der Profiler bietet mehrere Möglichkeiten zum Speichern eines Snapshots. Die folgende Tabelle enthält eine Beschreibung dieser Optionen:

Symbol 

Name 

Zweck 

Abbildung zeigt das Symbol „Start Identity Manager Profiler“

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.

Abbildung zeigt das Symbol „Stop Identity Manager Profiler“

Symbol „Save the Snapshot Externally“ (am oberen Rand der Snapshot-Ansicht) 

Speichert den Snapshot in einem beliebigen externen Verzeichnis. 

Abbildung zeigt das Symbol „Reset Collected Results“

Schaltfläche „Save As“ (im Bereich „Saved Snapshots“) 

Speichert den Snapshot in einem beliebigen externen Verzeichnis. 

Lernprogramm: Beheben von Leistungsproblemen

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.

ProcedureSchritt 1: Erstellen eines Identity Manager-Projekts

  1. Wählen Sie „File > New Project“.

  2. Geben Sie Folgendes an, wenn der Assistent zum Erstellen neuer Projekte angezeigt wird, und klicken Sie dann auf „Weiter“:

    1. Wählen Sie in der Liste „Categories“ den Eintrag „Web“ aus, um festzulegen, welchen Projekttyp Sie erstellen wollen.

    2. Wählen Sie aus der Projektliste den Eintrag „Identity Manager Project“.


      Hinweis –

      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.


  3. 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.

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

  5. 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.

ProcedureSchritt 2: Entpacken des Profiler-Lernprogramms

  1. 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
  2. Jetzt können Sie den Profiler starten. Gegen Sie zu Schritt 3: Starten des Profilers.

ProcedureSchritt 3: Starten des Profilers

  1. Erhöhen Sie mithilfe der Anleitung unter Vorbereitung die Speicherressourcen für den Server und die Netbeans-JVM.

  2. Starten Sie den Profiler mit einer der beiden unter Übersicht beschriebenen Möglichkeiten.

  3. Wenn das Dialogfeld „Profiler Options“ angezeigt wird, können Sie Optionen für das Profiling eingeben.

  4. Gehen Sie zu Schritt 4: Festlegen der Optionen für das Profiling


    Hinweis –

    Weitere Informationen zu den verschiedenen Profiler-Optionen finden Sie unter Festlegen von Optionen für das Profiling.


ProcedureSchritt 4: Festlegen der Optionen für das Profiling

Für dieses Lernprogramm sollten Sie die folgenden Profiler-Optionen eingeben:

  1. 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.

  2. 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:

    1. Klicken Sie auf „New“. Ein neues leeres Feld erscheint am Ende der Filterspalte.

    2. Geben Sie in das neue Feld com.waveset.* ein und markieren Sie dann das Kontrollkästchen „Exclude“.

    3. Klicken Sie erneut auf „New“.

    4. Geben Sie in das neue Feld com.sun.idm.* ein und markieren Sie dann das Kontrollkästchen „Exclude“.

  3. Klicken Sie auf „OK“, um den Profiler auszuführen.


    Hinweis –

    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.

  4. Geben Sie das Passwort configurator ein, aktivieren Sie das Kontrollkästchen „Remember Password“ und klicken Sie anschließend auf „OK“, um fortzufahren.

  5. Melden Sie sich an, wenn das Identity Manager-Fenster angezeigt wird.


    Hinweis –

    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.


  6. 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.

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


    Hinweis –

    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.


    1. 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.

    2. Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow1“.

    3. Wenn das Prozessdiagram angezeigt wird, sollten Sie zur Identity Manager-IDE zurückgehen und im Abschnitt „Profiling Results“ auf „Take Snapshot“ klicken.

  8. 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.

  9. Klappen Sie den Knoten /idm/task/taskLaunch.jsp auf, und jetzt sehen Sie, dass ProfilerTutorialWorkflow1 sechs Sekunden dauerte.

  10. Klappen Sie den Knoten ProfilerTutorialWorkflow1 auf. Beachten Sie, dass activity2 vier Sekunden und activity1 zwei Sekunden dauerte.

  11. Klappen Sie activity2 auf.

    Beachten Sie, dass action1 zwei Sekunden und action2 zwei Sekunden dauerte.

  12. Klappen Sie action1 auf. Sie sehen, dass der Aufruf (<invoke>) ebenfalls zwei Sekunden dauerte.

  13. 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.


    Hinweis –

    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.)


  14. Klicken Sie auf die Registerkarte „CPU:Datum><Uhrzeit“, um zum Snapshot zurückzukehren.

  15. Klappen Sie den <invoke>-Knoten auf. Sie sehen, dass der Profiler zwei Sekunden in der Java-Methode ProfilerTutorialExample.example() verbracht hat.

  16. 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.

  17. 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.

  18. 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.)

  19. 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.

  20. 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.)

  21. 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.

  22. Markieren Sie den gespeicherten Snapshot und klicken Sie dann auf „Open“, um ihn wieder zu öffnen.


    Hinweis –

    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.


  23. Schließen Sie den Snapshot wieder.

ProcedureSchritt 5: Verwenden des Profilers für die Arbeitsablauf-Aktion „ManualAction“

Der nächste Abschnitt dieses Lernprogramms befasst sich mit dem Profiling einer „ManualAction“ eines Arbeitsablaufs.

  1. Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow2“.

    Nach einigen Sekunden wird ein leeres Formular angezeigt.

  2. Klicken Sie auf „Speichern“. Das Prozessdiagramm wird angezeigt.

  3. Klicken Sie erneut auf „Serveraufgaben > Aufgaben ausführen“.

  4. Gehen Sie zur IDM-Profileransicht der Identity Manager-IDE zurück und klicken Sie im Abschnitt „Profiling Results“ auf „Reset Collected Results“.

  5. Klicken Sie jetzt in Identity Manager auf „ProfilerTutorialWorkflow2“.

  6. Klicken Sie auf „Speichern“, wenn das leere Formular erneut angezeigt wird.

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

  8. Klappen Sie den Knoten /idm/task/workItemEdit.jsp auf. Sie sehen, dass die Ausführung aller Ableitungen im Formular ManualAction sechs Sekunden dauerte.

  9. 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.

  10. Sie können auf <block>doppelklicken, um den Quellcode zu sehen.

Onlinehilfe

Dieser Abschnitt enthält Korrekturen an der Onlinehilfe.