Sun™ Identity Manager 8.0 Versionshinweise

Erweiterungen und Korrekturen der Dokumentation

Dieser Abschnitt enthält neue Informationen und Korrekturen, die nach der Herausgabe der Identity Manager 8.0-Dokumentation bekannt wurden. Die Informationen sind wie folgt unterteilt:


Identity Manager 8.0 Administration

Dieser Abschnitt enthält eine Korrektur für das Dokument Sun Identity Manager Administration:


Identity Manager Technical Deployment Overview

Dieser Abschnitt enthält neue Informationen und Dokumentationskorrekturen für das Dokument Sun Identity Manager Technical Deployment Overview:

Die folgenden Informationen werden dem Kapitel „Private Labeling of Identity Manager“ im Dokument Identity Manager Technical Deployment Overview hinzugefügt bzw. dort korrigiert:

Der Produktname in der Titelleiste des Browsers kann jetzt durch einen lokalisierbaren Text Ihrer Wahl ersetzt werden.

  1. Importieren Sie die folgende XML-Datei:
  2. Codebeispiel 1 Zu importierende XML-Datei

    <?xml version='1.0' encoding='UTF-8'?>

    <!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>

    <Configuration name='AltMsgCatalog'>

    <Extension>

    <CustomCatalog id='AltMsgCatalog' enabled='true'>

    <MessageSet language='en' country='US'>

    <Msg id='UI_BROWSER_TITLE_PROD_NAME_OVERRIDE'>Neuer Name</Msg>

        </MessageSet>

    </CustomCatalog>

    </Configuration>

    </Extension>

  3. Laden Sie mithilfe der Identity Manager-IDE das SystemConfiguration-Objekt zum Bearbeiten. Fügen Sie auf der obersten Hierarchieebene ein neues Attribut hinzu:
  4. Name = customMessageCatalog

    Type = string

    Value = AltMsgCatalog

  5. Öffnen Sie das generische Objekt „ui.web“ und suchen Sie das Attribut browserTitleProdNameOverride. Setzen Sie diesen Wert auf „true“.
  6. Speichern Sie diese Änderung im SystemConfiguration-Objekt, und starten Sie den Anwendungsserver neu.
  7. Die Anleitung zum Anpassen von Anmeldeseiten im Abschnitt „Customizing Identity Manager End User Pages“ sollte die folgenden Informationen über Meldungsschlüssel enthalten. (ID-16072)
  8. JSP- bzw. Identity Manager-Komponente

    Betroffene Oberfläche

    Meldungsschlüssel

    Anmeldeseite - TITEL

    Administrator/Endbenutzer

    UI_LOGIN_TITLE_TO_RESOURCE

    UI_LOGIN_CHALLENGE

    Anmeldeseite - UNTERTITEL

    Administrator/Endbenutzer

    Wählen Sie je nach Anmeldemodus einen Schlüssel aus: Passwort vergessen, Benutzer-ID vergessen, Authentifizierung mittels geheimer Fragen.

    UI_LOGIN_WELCOME3

    UI_LOGIN_WELCOME4

    UI_LOGIN_WELCOME5

    UI_LOGIN_WELCOME6

    UI_LOGIN_CHALLENGE_INFO

    staticLogout.jsp und user/staticUserLogout.jsp

    Administrator/Endbenutzer

    UI_LOGIN_TITLE

    continueLogin.jsp

    Administrator

    UI_LOGIN_IN_PROGRESS_TITLE

    UI_LOGIN_WELCOME

Den Standardtext „Angemeldet als“ ändern

  1. Importieren Sie die folgende XML-Datei:
  2. <?xml version='1.0' encoding='UTF-8'?>

    <!DOCTYPE Configuration PUBLIC 'waveset.dtd' 'waveset.dtd'>

    <Configuration name='AltMsgCatalog'>

    <Extension>

    <CustomCatalog id='AltMsgCatalog' enabled='true'>

    <MessageSet language='en' country='US'>

    <Msg id='UI_NAV_FOOT_LOG_AS'>Eigener Text {0}!</Msg>

    </MessageSet>

    </CustomCatalog>

    </Extension>

    </Configuration>

  3. Fügen Sie dem SystemConfiguration-Objekt die folgende Zeile innerhalb des <Configuration><Extension><Object>-Elements hinzu:
  1. Speichern Sie die Änderung und starten Sie Ihren Anwendungsserver neu.


Identity Manager Workflows, Forms, and Views

Dieser Abschnitt enthält neue Informationen und Dokumentationskorrekturen für das Dokument Sun Identity Manager Workflows, Forms, and Views.

Kapitel 1, „Identity Manager Workflow“

Kapitel 2, „Workflow Services“

Workflow-Bereitstellungsdienst „lock“

Workflow-Bereitstellungsdienst „unlock“

Kapitel 3, „Identity Manager Forms“

Zusätzliche Informationen

Formularverarbeitung zu Überwachungszwecken

Festlegen von Benutzerformularen

Standardformulare für die Überwachung

Warum sollten die Formulare angepasst werden?

Variablen für Abfrageaufgaben

Kapitel 4, „Identity Manager Views“

Allgemeine Attribute

Die Organisationsansichtsattribute höherer Ebene sind im Folgenden aufgelistet.

Name

Bearbeitbar?

Datentyp

Obligatorisch?

orgName

Lesen

String

Vom System generiert

orgDisplayName

Lesen/Schreiben

String

Ja

orgType

Lesen/Schreiben

String

Nein

orgId

Lesen

String

Vom System generiert

orgAction

Schreiben

String

Nein

orgNewDisplayName

Schreiben

String

Nein

orgParentName

Lesen/Schreiben

String

Nein

orgChildOrgNames

Lesen

Liste

Vom System generiert

orgApprovers

Lesen/Schreiben

Liste

Nein

allowsOrgApprovers

Lesen

Liste

Vom System generiert

allowedOrgApproverIds

Lesen

Liste

Vom System generiert

orgUserForm

Lesen/Schreiben

String

Nein

orgViewUserForm

Lesen/Schreiben

String

Nein

orgPolicies

Lesen/Schreiben

Liste

Nein

orgAuditPolicies

Lesen/Schreiben

Liste

Nein

renameCreate

Lesen/Schreiben

String

Nein

renameSaveAs

Lesen/Schreiben

String

Nein

orgName

Gibt die UID für die Organisation an. Dieser Wert unterscheidet sich von den meisten Ansichtsobjektnamen, da Organisationen denselben Kurznamen aufweisen und doch zu verschiedenen übergeordneten Organisationen gehören können.

orgDisplayName

Gibt den Kurznamen der Organisation an. Dieser Wert dient nur der Anzeige und muss nicht eindeutig sein.

orgType

Definiert den Organisationtyp. Zulässige Werte sind junction oder virtual. Organisationen, die nicht zum Typ junction oder virtual gehören, weisen keinen Wert auf.

orgId

Gibt die ID an, mit der die Organisation in Identity Manager eindeutig identifiziert wird.

orgAction

Wird nur für Verzeichniszuordnungen, virtuelle Organisationen und dynamische Organisationen unterstützt. Zulässiger Wert ist refresh. Wenn es sich bei der Organisation um eine Verzeichniszuordnung oder eine virtuelle Organisation handelt, hängt das Verhalten bei der Aktualisierung vom Wert von orgRefreshAllOrgsUserMembers ab.

orgNewDisplayName

Legt beim Umbenennen einer Organisation den neuen Kurznamen fest.

orgParentName

Gibt den vollständigen Pfadnamen der übergeordneten Organisation an.

orgChildOrgNames

Listet die Identity Manager-Schnittstellennamen aller direkten und indirekten untergeordneten Organisationen auf.

orgApprovers

Listet die Identity Manager-Administratoren auf, die das Hinzufügen bzw. Modifizieren von Benutzern in der jeweiligen Organisation genehmigen müssen.

allowedOrgApprovers

Listet die Namen von Benutzern auf, die ebenfalls das Hinzufügen und Modifizieren von Benutzern in der jeweiligen Organisation genehmigen könnten.

allowedOrgApproverIds

Listet die IDs von Benutzern auf, die ebenfalls das Hinzufügen und Modifizieren von Benutzern in der jeweiligen Organisation genehmigen könnten.

orgUserForm

Legt das userForm fest, das Benutzer, die Mitglied der jeweiligen Organisation sind, beim Erstellen oder Bearbeiten von Benutzern verwenden.

orgViewUserForm

Legt das Benutzeranzeigeformular fest, das Benutzer, die Mitglied der jeweiligen Organisation sind, beim Anzeigen von Benutzern verwenden.

orgPolicies

Gibt Richtlinien an, die für alle Benutzer gelten, die Mitglied der jeweiligen Organisation sind. Hierbei handelt es sich um eine Liste von Objekten, geordnet nach Typzeichenfolge. Alle Richtlinienobjekte enthalten die folgenden Ansichtsattribute, denen orgPolicies[<type>] vorangestellt ist. <type> steht für den Richtlinientyp (Beispiel: Lighthouse-Konto).

orgAuditPolicies

Gibt die Überwachungsrichtlinien an, die für alle Benutzer gelten, die Mitglied der jeweiligen Organisation sind.

renameCreate

Wenn dieses Attribut auf „true“ gesetzt ist, wird die jeweilige Organisation geklont. Für die neu erstellte Organisation gilt der Wert von orgNewDisplayName.

renameSaveAs

Wenn dieses Attribut auf „true“ gesetzt ist, wird die jeweilige Organisation in den Wert von orgNewDisplayName umbenannt.

Attribute für Verzeichniszuordnung und virtuelle Organisationen

Name

Bearbeitbar?

Datentyp

Obligatorisch?

orgContainerId

Lesen

String

Vom System generiert

orgContainerTypes

Lesen

Liste

Vom System generiert

orgContainers

Lesen

Liste

Vom System generiert

orgParentContainerId

Lesen

String

Vom System generiert

orgResource

Lesen/Schreiben

String

Ja, für Verzeichniszuordnung bzw. virtuelle Organisation

orgResourceType

Lesen

String

Vom System generiert

orgResourceId

Lesen

String

Vom System generiert

orgRefreshAllOrgsUserMembers

Schreiben

String

Nein

orgContainerId

Gibt den DN des zugehörigen LDAP-Verzeichniscontainers an (Beispiel: cn=foo,ou=bar,o=foobar.com).

orgContainerTypes

Listet die zulässigen Ressourcenobjekttypen auf, die andere Ressourcenobjekte enthalten können.

orgContainers

Listet die Basiscontainer für die Ressource auf, die von der Identity Manager-Schnittstelle zum Anzeigen einer Auswahlliste verwendet werden.

orgParentContainerId

Gibt den DN des zugehörigen übergeordneten LDAP-Verzeichniscontainers an (Beispiel: ou=bar,o=foobar.com).

orgResource

Gibt den Namen der Identity Manager-Ressource zum Synchronisieren der Verzeichniszuordnung und der virtuellen Organisationen an (Beispiel: West Directory Server).

orgResourceType

Gibt den Typ der Identity Manager-Ressource an, von der aus die Verzeichniszuordnung und die virtuellen Organisationen synchronisiert werden (Beispiel: LDAP).

orgResourceId

Gibt die ID der Identity Manager-Ressource an, die zum Synchronisieren von Verzeichniszuordnungen und virtuellen Organisationen verwendet wird.

orgRefreshAllOrgsUserMembers

Wenn dieses Attribut auf true und orgAction auf refresh gesetzt ist, werden für die ausgewählte Organisation und alle untergeordneten Organisationen die Benutzer, die Mitglied in der Identity Manager-Organisation sind, mit den Benutzern im Ressourcencontainer synchronisiert. Wenn dieses Attribut auf false gesetzt ist, erfolgt keine Synchronisation mit den Benutzern im Ressourcencontainer. Für die ausgewählte Organisation und alle untergeordneten Organisationen werden nur die Ressourcencontainer mit den Identity-Manager-Organisationen synchronisiert.

Attribute für dynamische Organisationen

Name

Bearbeitbar?

Datentyp

Obligatorisch?

orgUserMembersRule

Lesen/Schreiben

String

Nein

orgUserMembersRuleCacheTimeout

Lesen/Schreiben

String

Nein

orgUserMembersRule

Gibt (anhand des Namens oder der UID) die Regel an, deren authType „UserMembersRule“ lautet. Diese wird zur Laufzeit ausgewertet, um die Mitgliedschaft zu ermitteln.

orgUserMembersCacheTimeout

Gibt an, nach wie viel Millisekunden es zu einer Cache-Zeitüberschreitung kommt, wenn von „orgUserMembersRule“ zurückgegebene Benutzer in den Cache geschrieben werden sollen. Der Wert 0 gibt an, dass keine Zwischenspeicherung erfolgt.

Die Erläuterungen zur Benutzeransicht umfassen nun auch Informationen zu accounts[Lighthouse].delegates-Attributen: (ID-15468)

accounts[Lighthouse].delegates

Führt Delegate-Objekte auf, die über workItemType indiziert werden, wobei jedes Objekt Delegate-Informationen für einen bestimmten Arbeitselementtyp enthält.

accounts[Lighthouse].delegatesHistory

Führt Delegate-Objekte auf, die von 0 bis n indiziert sind, wobei n die aktuelle Anzahl der historischen Delegate-Objekte bis zur historischen Delegate-Tiefe angibt.

Dieses Attribut hat ein eindeutiges Attribut, selected, das ein Boolescher Wert ist, der das gerade ausgewählte historische Delegate-Objekt angibt.

accounts[Lighthouse].delegatesOriginal

Originalliste von Delegate-Objekten, die nach einem Abrufvorgang oder dem Auschecken einer Ansicht über workItemType indiziert werden.

Alle accounts[Lighthouse].delegates*-Attribute nehmen die folgenden Attribute an:

Attribute von accounts[Lighthouse].delegate*- Attributen

Beschreibung

 

 

workItemType

Identifiziert den Typ von workItem, das gerade delegiert wird. Eine Liste mit zulässigen workItem-Typen finden Sie in der Beschreibung des Modells für Delegate-Objekte unter Identity Manager Technical Deployment Overview dieses Dokumentationsnachtrags.

workItemTypeObjects

Führt die Namen spezifischer Rollen, Ressourcen oder Organisationen auf, in denen der Benutzer zukünftige workItem-Genehmigungsanforderungen delegiert. Dieses Attribut ist zulässig, wenn workItemType den Wert roleApproval, resourceApproval oder organizationApproval hat.

Wenn nicht angegeben, gibt dieses Attribut standardmäßig die Delegierung zukünftiger workItem-Anforderungen von allen Rollen, Ressourcen oder Organisationen an, in denen der Benutzer als Genehmiger fungiert.

toType

Typ, an den delegiert wird. Gültige Werte sind:

manager

delegateWorkItemsRule

selectedUsers

toUsers

Führt die Namen der Benutzer auf, an die delegiert werden soll (wenn toType den Wert selectedUsers hat).

toRule

Gibt den Namen der Regel an, die bei der Bestimmung der Benutzer angewendet wird, an die delegiert werden soll (wenn toType den Wert delegateWorkItemsRule hat).

startDate

Gibt das Datum an, an dem die Delegierung gestartet werden soll.

endDate

Gibt das Datum an, an dem die Delegierung beendet werden soll.

Verweisen auf ein DelegateWorkItems-Ansichtsobjekt von einem Formular aus

Das folgende Codebeispiel veranschaulicht, wie Sie von einem Formular aus auf ein DelegateWorkItems-Delegate-Objekt verweisen können:

<Field name='delegates[*].workItemType'>

<Field name=’delegates[*].workItemTypeObjects’>

<Field name=’delegates[*].toType’>

<Field name='delegates[*].toUsers'>

<Field name=’delegates[*].toRule’>

<Field name='delegates[*].startDate'>

<Field name='delegates[*].endDate'>

wobei unterstützte Indexwerte (*) workItemType-Werte sind.

Name

Bearbeitbar?

Typ

Obligatorisch?

name

 

String

Ja

Status

 

String

Ja

Benutzer

 

String

Ja

userId

 

String

Ja

attestorHint

 

String

Nein

userView

 

GenericObject

Ja

reviewInstanceId

 

String

Ja

reviewStartDate

 

String

Ja

scanId

 

String

Ja

scanInstanceId

 

String

Ja

approvalWorkflowName

 

String

Ja

organizationId

 

String

Ja

attestorComments.name

 

String

Nein

attestorComments.attestor

 

String

Nein

attestorComments.time

 

String

Nein

attestorComments.timestamp

 

String

Nein

attestorComments.status

 

 

Nein

name

Gibt den Benutzeranspruch an (anhand einer eindeutigen ID).

Status

Gibt den Status des UserEntitlement-Objekts an. Zulässige Statuswerte sind u. a. PENDING, ACCEPTED, REJECTED, REMEDIATING und CANCELLED.

Benutzer

Gibt den Namen des zugehörigen WSUser für diesen Anspruch an.

userId

Gibt die ID des zugehörigen WSUser an.

attestorHint

Zeigt den Tipp (Zeichenfolge) für den Bescheiniger an, der in der Regel für Prüfungsbestimmung festgelegt ist. Dieser Tipp enthält für den Bescheiniger nützliche Informationen über die Regel.

userView

Enthält die von der Benutzeranspruchs-Prüffunktion erfasste Benutzeransicht. Wie viele Ressourcenkonten diese Ansicht enthält, hängt von der Konfiguration des AccessScan-Objekts ab.

reviewInstanceId

Gibt die ID der PAR-Aufgabeninstanz an.

reviewStartDate

Gibt das Startdatum (Zeichenfolge) der PAR-Aufgabe an (im Standardformat).

scanId

Gibt die ID der AccessScan-Aufgabendefinition an.

scanInstanceId

Gibt die ID der AccessScan-Aufgabeninstanz an.

approvalWorkflowName

Gibt den Namen des für die Genehmigung auszuführenden Workflows an. Dieser Wert stammt aus der AccessScan-Aufgabendefinition.

organizationId

Gibt die ID der Organisation des WSUser zur Zeit der Prüfung an.

attestorComments

Listet Bescheinigungsdatensätze für den Anspruch auf. Jeder Bescheinigungsdatensatz gibt eine Aktion oder eine Anweisung in Bezug auf den Anspruch an, u. a. Genehmigung, Ablehnung und erneute Prüfung.

attestorComments[timestamp].name

Zeitstempel zum Identifizieren des Elements in der Liste.

attestorComments[timestamp].attestor

Gibt den WSUser-Namen des Bescheinigers an, von dem der Kommentar zum Anspruch stammt.

attestorComments[timestamp].time

Gibt die Uhrzeit an, zu der dieser Datensatz vom Bescheiniger bescheinigt wurde. Kann vom Zeitstempel abweichen.

attestorComments[timestamp].status

Gibt den vom Bescheiniger zugewiesenen Status an. Hierbei kann es sich um eine beliebige Zeichenfolge handeln. Normalerweise wird jedoch die vom Bescheiniger ausgeführte Aktion angegeben, also z. B. Genehmigung, Ablehnung, erneute Prüfung, Korrektur.

attestorComments[name].comment

Enthält vom Bescheiniger hinzugefügte Kommentare.

Kapitel 6, „XPRESS Language“

Kapitel 8, „HTML Display Components“

Verwenden des objectSelector-Beispielcodes

  1. Öffnen Sie in der Identity Manager-IDE das UserForm-Objekt der Administratorenbibliothek.
  2. Fügen Sie diesem Formular den folgenden Code hinzu:
  3. <Include>

       <ObjectRef type='UserForm' name='Scalable Selection Library'/>

    </Include>

  4. Wählen Sie im Feld AdministratorFields das Feld accounts[Lighthouse].adminRoles.
  5. Ersetzen Sie die gesamte Referenz accounts[Lighthouse].adminRoles durch folgende Referenz:
  6. <FieldRef name='scalableWaveset.adminRoles'/>

  7. Speichern Sie das Objekt.
  8. Wenn Sie das nächste Mal einen Benutzer bearbeiten und die Registerkarte „Sicherheit“ auswählen, zeigt Identity Manager das angepasste Formular an. Durch Klicken auf ... wird die Selektorkomponente geöffnet und ein Suchfeld angezeigt. Suchen Sie mit Hilfe dieses Felds nach Admin-Rollen, die mit einer Zeichenfolge beginnen und stellen Sie das Feld auf einen oder mehrere Werte ein.

    Um das Formular wiederherzustellen, importieren Sie $WSHOME/sample/formlib.xml über Konfigurieren > Exchange-Datei importieren.

    Weitere Beispiele zum Verwalten von Ressourcen und Rollen in objektreichen Umgebungen mit der objectSelector-Vorlage finden Sie in der Scalable Selection Library in sample/formlib.xml.

  9. Die Erläuterungen zur TabPanel-Komponente enthalten nun die folgende Beschreibung der validatePerTab-Eigenschaft: (ID-15501)

ListEditor

Aktivieren von „autocomplete“ für Identity Manager-Anmeldeseiten

Anhang A, „Form and Process Mappings“


Identity Manager Deployment Tools

Dieser Abschnitt enthält Korrekturen und Ergänzungen für die Identity Manager Deployment Tools-Dokumentation.

Arbeiten mit dem Identity Manager-Profiler

Identity Manager besitzt jetzt ein Profilerdienstprogramm, das Ihnen in Ihrer Bereitstellung beim Auffinden von Leistungsproblemen bei Formularen, Java, Regeln, Workflows und XPRESS hilft.

Formulare, Java, Regeln, Workflows 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:

Übersicht

Dieser Abschnitt enthält einen Überblick über Leistungsmerkmale und Funktionen 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:

Für Formulare, Workflows, 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 der Code auf dem aktuellsten Stand (d. h. identisch mit dem Code auf dem Server) 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.

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 isg. 10 s (dies schließt den Aufruf von B ein) und der Aufruf von B dauert isg. 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 Konstruktur statt darunter.  Hierzu ein Beispiel:

class A

{

public A()

{

this(0);

}

public A(int i)

{

}

}

und:

class B

{

public static void test()

{

new A();

}

}

Die Aufrufhierarchie sieht wie folgt aus:

B.test()

-A.<init>(int)

-A.<init>()

... und nicht etwa so:

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.

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:

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:

Modus     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:

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 Workflow-, 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 compiliert werden, ist der Einfluss der Instrumentierung auf die Ausführungszeit vernachlässigbar. So gibt es beispielsweise keinen Grund, Workflow A auszuschließen und Workflow 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

Zweck

Symbol „Start Identity Manager Profiler“

Start Identity Manager Profiler

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

Symbol „Stop Identity Manager Profiler“

Stop Identity Manager Profiler

Stoppt den Profiler.

Abbildung: Symbol „Reset Collected Results“

Reset Collected Results

Löscht alle bis hierhin erfassten Profiling-Ergebnisse.

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

Zweck

Symbol „Take Snapshot“

Start Identity Manager Profiler

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

Abbildung: 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, wieviel 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:

  • 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, wieviel mal der Root-Knoten von einer bestimmten Aufrufkette aus aufgerufen wurde.

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 Workflow, 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 unter Rückverfolgungsansicht.

Show Callees

Wählen Sie diese Option, um zur Ansicht der aufgerufenen Routinen zu schalten. Ausführliche Informationen zu dieser Ansicht finden Sie unter Ansicht 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 unter Hotspot-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: Aufrufhierarchie
  • Invocations: Aufrufe
  • Time: Zeit

Suchen eines Snapshots

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.

Speichern eines Snapshots

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

Symbol

Zweck

Symbol „Take Snapshot“

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: Symbol „Reset Collected Results“

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

Speichert den Snapshot in einem beliebigen externen Verzeichnis.

Abbildung: Schaltfläche „Save As“ im Bereich „Saved Snapshots“

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

Speichert den Snapshot in einem beliebigen externen Verzeichnis.

Tutorium: Beheben von Leistungsproblemen

Identity Manager enthält ein Tutorium (profiler-tutorial.zip), mit dem Sie lernen können, wie Sie den Profiler zur Problembehebung bei Formularen, Java-Objekten, Regeln, Workflows und XPRESS-Objekten nutzen.

Schritt 1: Erstellen eines Identity Manager-Projekts

Führen Sie die folgenden Schritte aus, um ein Identity Manager-Projekt zu erstellen:

  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 aus der Liste „Categories“ den Eintrag „Web“, um festzulegen, welchen Projekttyp Sie erstellen wollen.
    2. Wählen Sie aus der Projektliste den Eintrag „Identity Manager Project“.

    3. 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 das Standardverzeichnis oder geben Sie ein anderes Verzeichnis 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.0 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.
  6. Sie brauchen die Standardeinstellungen in diesem Fenster nicht zu ändern. Klicken Sie auf „Fertigstellen“. Wenn im Ausgabefenster von von Identity Manager-IDE die Meldung BUILD SUCCESSFUL angezeigt wird, können Sie die Dateien des Profiler-Tutoriums extrahieren. Anweisungen dazu finden Sie unter Schritt 2: Entpacken des Profiler-Tutoriums.

Schritt 2: Entpacken des Profiler-Tutoriums

Entpacken Sie die Datei profiler-tutorial.zip in das Projekt-Wurzelverzeichnis. Es werden folgende Dateien extrahiert:

<Projekt-Wurzelverzeichnis>/custom/WEB-INF/config/ProfilerTutorial1.xml

<Projekt-Wurzelverzeichnis>/custom/WEB-INF/config/ProfilerTutorial2.xml

<Projekt-Wurzelverzeichnis>/src/org/example/ProfilerTutorialExample.java

<Projekt-Wurzelverzeichnis>/PROFILER_TUTORIAL_README.txt

Sie können jetzt den Profiler starten.

Schritt 3: Starten des Profilers

So starten Sie den Profiler:

  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.

Schritt 4: Festlegen von Optionen für das Profiling


Hinweis

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


Für dieses Tutorium 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, Workflows, Java- und XPRESS-Objekte durchzuführen.
  2. Klicken Sie auf die Registerkarte „Java Filters“.
  3. 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“.
  4. Klicken Sie auf „OK“, um den Profiler auszuführen.

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

  6. Geben Sie das Passwort configurator ein, markieren Sie das Kontrollkästchen „Passwort speichern“ und klicken Sie anschließend auf „OK“, um fortzufahren.
  7. Melden Sie sich an, wenn das Identity Manager-Fenster angezeigt wird.

  8. Hinweis

    Normalerweise sollten Sie sich in 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.


  9. Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow1“.
  10. Es kann sein, dass es einige Augenblicke dauert, bis das Tutorium reagiert.

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

  12. 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“Abbildung: 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 erneut „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.
  13. Die Identity Manager-IDE lädt die Snapshots und zeigt die Ergebnisse in der rechten Fensterhälfte an.
  14. 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.

  15. Klappen Sie den Knoten /idm/task/taskLaunch.jsp auf, und jetzt sehen Sie, dass ProfilerTutorialWorkflow1 sechs Sekunden dauerte.
  16. Klappen Sie den Knoten ProfilerTutorialWorkflow1 auf. Beachten Sie, dass activity2 vier Sekunden und activity1 zwei Sekunden dauerte.
  17. Klappen Sie activity2 auf.
  18. Beachten Sie, dass action1 zwei Sekunden und action2 zwei Sekunden dauerte.

  19. Klappen Sie action1 auf. Sie sehen, dass der Aufruf (<invoke>) ebenfalls zwei Sekunden dauerte.
  20. Doppelklicken Sie auf <invoke>, um ProfilerTutorialWorkflow1.xml zu öffnen, und markieren Sie die folgende Zeile:
  1. Klicken Sie auf die Registerkarte „CPU:<Datum><Zeit>“, um zum Snapshot zurückzukehren.
  2. Klappen Sie den <invoke>-Knoten auf. Sie sehen, dass der Profiler zwei Sekunden in der Java-Methode ProfilerTutorialExample.example() verbracht hat.
  3. Doppelklicken Sie auf den Methodennamen, um den Quellcode (ProfilerTutorialExample.java) zu öffnen, und markieren Sie die folgende Zeile:
  1. 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.
  2. 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.
  3. Weitere Informationen zu Hotspots finden Sie unter Hotspot-Ansicht.

  4. Klicken Sie mit der rechten Maustaste auf ProfilerTutorialExample.example() und wählen Sie aus dem Kontextmenü die Option „Show Back Traces“.
  5. Im unteren Bereich wird eine neue Registerkarte namens „Back Traces“ angezeigt.

  6. Klappen Sie den Knoten ProfilerTutorialExample.example() in der Registerkarte „Back Traces“ auf. Sie sehen, dass diese Methode an drei verschiedenen Stellen aufgerufen wurde und jede Ausführung zwei Sekunden dauerte.
  7. Weitere Informationen zu Rückverfolgungen finden Sie unter Rückverfolgungsansicht.

  8. Klicken Sie auf das Symbol „Save the snapshot in the project“,Abbildung: Symbol „Save the snapshot in the project“ um den Snapshot zu speichern, und schließen Sie ihn.
  9. 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.

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

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


  12. Schließen Sie den Snapshot wieder.

Verwenden des Profilers für die Workflow-Aktion „ManualAction“

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

  1. Wählen Sie in Identity Manager „Serveraufgaben > Aufgaben ausführen“, und klicken Sie dann auf „ProfilerTutorialWorkflow2“.
  2. Nach einigen Sekunden wird ein leeres Formular angezeigt.

  3. Klicken Sie auf „Speichern“. Das Prozessdiagramm wird angezeigt.
  4. Klicken Sie erneut auf „Serveraufgaben > Aufgaben ausführen“.
  5. Gehen Sie zur IDM-Profileransicht der Identity Manager-IDE zurück und klicken Sie im Abschnitt „Profiling Results“ auf „Reset Collected Results“.
  6. Klicken Sie jetzt in Identity Manager auf ProfilerTutorialWorkflow2.
  7. Klicken Sie auf „Speichern“, wenn das leere Formular erneut angezeigt wird.
  8. Klicken Sie in der IDM-Profileransicht auf „Take Snapshot“.
  9. 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 Workflow.

  10. Klappen Sie den Knoten /idm/task/workItemEdit.jsp auf. Sie sehen, dass die Ausführung aller Ableitungen im Formular ManualAction sechs Sekunden dauerte.
  11. Klappen Sie die Knoten Derivation, displayNameForm, variables.dummy und <block> auf.
  12. Sie sehen, dass der <block>-Knoten zur Ausführung sechs Sekunden benötigte und der Profiler in jedem Aufruf derMethode ProfilerTutorialExample.example() zwei Sekunden verbracht hat.

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

Identity Manager-IDE Häufig gestellte Fragen

Hier werden einige häufig gestellte Fragen in Bezug zur Identity Manager Integrated Development Environment (Identity Manager-IDE) beantwortet. Diese Informationen sind in die folgenden Kategorien unterteilt:

Arbeiten mit NetBeans

F: Welche Netbeans-Version sollte ich verwenden?

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


F: Das Netbeans-Plugin funktionierte, ich habe Änderungen vorgenommen, und jetzt funktioniert es nicht mehr. Was könnte die Ursache sein?

A: 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 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

F: 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?

A: Dieses Problem kann unter folgenden Bedingungen auftreten:

F: Welche Dateien sollten nach der Erstellung eines Identity Manager-Projekts in ein Quellcodeverwaltungssystem eingecheckt werden?

A: Weitere Informationen dazu finden Sie im Abschnitt „CVS Best Practices“ in der Datei README.txt der Identity Manager-IDE.

F: Wie verwende ich die CVS-Funktionen zur Projektverwaltung optimal?

A: Weitere Informationen dazu finden Sie im Abschnitt „CVS Best Practices“ in der Datei README.txt der Identity Manager-IDE.

F: Wann werden Objekte in das Repository importiert?

A: Informationen dazu finden Sie unter Arbeiten mit dem Repository.

F: Wie füge ich zu einem Projekt eine neue JAR-Datei hinzu?

A: Weitere Informationen dazu finden Sie im Abschnitt „How to add a new JAR dependency“ in der Datei README.txt der Identity Manager-IDE.

Arbeiten mit dem Repository

F: Welches Repository sollte ich für ein Sandbox-Repository verwenden?

A: 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 Datei README.txt der Identity Manager-IDE.

F: Wann werden Objekte automatisch importiert?

A: Die Identity Manager-IDE muss zum automatischen Import von Objekten speziell 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“.

  3. Hinweis

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


  4. Wählen Sie „Projekt > Projekt ausführen“ bzw. „Projekt > Debug Project“.
  5. Die Identity Manager-IDE importiert automatisch alle Objekte, die seit der letzten Projektausführung geändert wurden.


    Hinweis

    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.


F: Wie können Objekte am effektivsten geladen werden?

A: 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 „Projekt ausführen“ 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

F: Der Debugger der Identity Manager-IDE ist sehr langsam. Was könnte die Ursache sein?

A: Zur Leistungsverbesserung des Debuggers sollten Sie stets Folgendes sicherstellen:

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

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

F: Ich habe im Debugger einen Haltepunkt gesetzt, und dieser Haltepunkt kann nicht temporär deaktiviert werden. Was könnte die Ursache sein?

A: Sie sollten zwei Dinge überprüfen:

Arbeiten mit Regeln

F: Warum steht der Designmodus bei der Entwicklung von Netbeans-Regeln nicht für Regelbibliotheken zur Verfügung?

A: 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“.


Identity Manager Tuning, Troubleshooting, and Error Messages

Dieser Abschnitt enthält neue Informationen und Dokumentationskorrekturen für das Dokument Sun Identity Manager Tuning, Troubleshooting, and Error Messages.


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)


Onlinehilfe

Dieser Abschnitt enthält Korrekturen an der Onlinehilfe.