33.6 Aufgaben nach der Installation für WebSphere

33.6.1 Konfigurieren eines WebSphere-Clusters nach erfolgter Installation der Identitätsanwendungen

In diesem Abschnitt wird beschrieben, wie Sie einen WebSphere-Cluster für die Identitätsanwendungen konfigurieren. In diesem Abschnitt wird vorausgesetzt, dass Sie mit der Nutzung des WebSphere-Anwendungsservers (WAS) vertraut sind.

  1. (Bedingt) Soll das Sitzungs-Failover für RBPM vorgenommen werden, führen Sie die folgenden Schritte aus:

    1. Navigieren Sie in der IBM-Admin-Konsole zu Anwendungsserver > Clustermitglied1 > Sitzungsverwaltung > Einstellungen für dezentrale Umgebung > Parameter zur Leistungssteigerung > Benutzerdefinierte Parameter zur Leistungssteigerung.

    2. Aktivieren Sie den Modus Alle Sitzungsattribute. Dieser Modus steuert den zu schreibenden Inhalt bei einem Sitzungs-Failover.

  2. Starten Sie den Anwendungsserver, und greifen Sie über den Kontext, den Sie bei der Bereitstellung angegeben hatten, auf das Benutzeranwendungsportal zu.

33.6.2 Hinzufügen von Benutzeranwendungs-Konfigurationsdateien und JVM-Systemeigenschaften

In diesem Abschnitt wird beschrieben, wie Sie die erforderlichen neuen JVM-Eigenschaften erstellen, damit die Identitätsanwendungen ordnungsgemäß auf einem WebSphere-Anwendungsserver verwendet werden können.

  1. Melden Sie sich bei der Administrationskonsole von WebSphere als Admin-Benutzer an.

  2. Klicken Sie im linken Bereich auf Server > Anwendungsserver.

  3. Klicken Sie in der Serverliste auf den Namen des gewünschten Servers. Beispiel: Server1.

  4. Klicken Sie in der Liste der Einstellungen im Inhaltsbereich unter Serverinfrastruktur auf Java- und Prozessverwaltung.

  5. Erweitern Sie den Link und wählen Sie Prozessdefinition.

  6. Klicken Sie in der Liste Zusätzliche Eigenschaften auf Java Virtual Machine.

  7. Klicken Sie unter der Überschrift Zusätzliche Eigenschaften für die JVM-Seite auf Benutzerdefinierte Eigenschaften.

  8. Fügen Sie die JVM-Systemeigenschaft extend.local.config.dir mit den folgenden Schritten hinzu:

    1. Klicken Sie auf Neu.

    2. Geben Sie unter Name den Namen extend.local.config.dir an.

    3. Geben Sie unter Wert den vollständigen Pfad des Verzeichnisses an, in dem sich die Datei hibernate.cfg.xml befindet. Beispiel: /opt/netiq/idm/apps/UserApplication/.

    4. Geben Sie unter Beschreibung eine Beschreibung der Eigenschaft ein.

      Beispiel: Pfad zu den Konfigurationsdateien der Identitätsanwendungen.

    5. Klicken Sie auf OK, um die Eigenschaft zu speichern.

  9. Fügen Sie die JVM-Systemeigenschaft idmuserapp.logging.config.dir mit den folgenden Schritten hinzu:

    1. Klicken Sie auf Neu.

    2. Geben Sie unter Name den Namen idmuserapp.logging.config.dir an.

    3. Geben Sie unter Wert den vollständigen Pfad des Verzeichnisses an, in dem sich die Datei idmuserapp_logging.xml befindet.

      Beispiel: /opt/netiq/idm/apps/UserApplication/.

    4. Geben Sie unter Beschreibung eine Beschreibung der Eigenschaft ein.

      Beispiel: Pfad zu den Protokollkonfigurationsdateien der Identitätsanwendungen.

    5. Klicken Sie auf OK, um die Eigenschaft zu speichern.

  10. Fügen Sie die JVM-Systemeigenschaft com.netiq.ism.config mit den folgenden Schritten hinzu:

    1. Klicken Sie auf Neu.

    2. Geben Sie unter Name den Namen com.netiq.ism.config an.

    3. Geben Sie unter Wert den vollständigen Pfad und den Dateinamen der Datei ism-configuation.properties an.

      Beispiel: /opt/netiq/idm/apps/UserApplication/ism-configuation.properties.

    4. Geben Sie unter Beschreibung eine Beschreibung der Eigenschaft ein.

      Beispiel: Datei ism properties der Identitätsanwendungen.

    5. Klicken Sie auf OK, um die Eigenschaft zu speichern.

  11. (Bedingt) Soll die Workflow-Engine-ID für eine Cluster-Umgebung angegeben werden, führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf Neu.

    2. Geben Sie unter Name den Namen com.novell.afw.wf.engine-id an.

    3. Geben Sie unter Wert die ID für die Workflow-Engine an.

    4. Geben Sie unter Beschreibung eine Beschreibung der Eigenschaft ein, beispielsweise Workflow-Engine-ID.

    5. Klicken Sie auf OK, um die Eigenschaft zu speichern.

33.6.3 Erstellen und Anwenden einer gemeinsamen Bibliothek

Unter Umständen müssen Sie eine gemeinsame Bibliothek für die Identitätsanwendungen konfigurieren. Beim Erstellen einer gemeinsamen Bibliothek müssen Sie diese auch einem neuen Class Loader zuweisen, damit WebSphere die Identity Manager-Versionen der JAR-Dateien verwendet. Ansonsten treten Klassenladeprobleme bei den in WebSphere enthaltenen JAR-Dateien auf. WebSphere-Klassenladeprobleme können sich als die folgenden Ausnahmefehler äußern:

  • ClassCastException

  • ClassNotFoundException

  • NoClassDefFoundException

  • UnsatisfiedLinkError

  • LinkageError

Dieser Vorgang umfasst folgende Schritte:

Konfigurieren der freigegebenen Bibliothek

  1. Melden Sie sich bei der Administrationskonsole von WebSphere als Admin-Benutzer an.

  2. Erweitern Sie im linken Bereich den Eintrag Umgebung.

  3. Klicken Sie auf Gemeinsame Bibliotheken.

  4. Klicken Sie im Inhaltsbereich auf Neu.

  5. Geben Sie einen Namen ein (z. B. IDMUA Classpath).

  6. Fügen Sie unter Klassenpfad die folgenden erforderlichen JAR-Dateien hinzu:

    • log4j.jar

    • commons-logging-1.1.1.jar

    • IDMselector.jar

    Diese Dateien befinden sich standardmäßig im Installationsverzeichnis der Identitätsanwendungen. Beispiel: /opt/netiq/idm/apps/UserApplication.

  7. Deaktivieren Sie die Option Separaten Class Loader für diese freigegebene Bibliothek verwenden.

  8. Klicken Sie auf OK.

  9. Klicken Sie auf Speichern, um die Änderungen in der Hauptkonfiguration zu speichern.

Anwenden der freigegebenen Bibliothek für einen neuen Class Loader

  1. Melden Sie sich bei der Administrationskonsole von WebSphere als Admin-Benutzer an.

  2. Erweitern Sie den Eintrag Anwendungsserver > Servername > Class Loader.

    HINWEIS:Standardmäßig wird diese Option im Abschnitt Java und Prozessverwaltung minimiert angezeigt.

  3. Klicken Sie im Inhaltsbereich auf Neu, und erstellen Sie einen neuen Class Loader.

  4. Wählen Sie Klassen, die zuerst mit dem lokalen Class Loader geladen werden (übergeordnete zuletzt).

  5. Klicken Sie auf Anwenden.

  6. Wählen Sie Verweise der freigegebenen Bibliothek.

  7. Klicken Sie auf Hinzufügen, und wählen Sie die gemeinsame Bibliothek aus, die Sie in Konfigurieren der freigegebenen Bibliothek erstellt haben.

  8. Klicken Sie auf Anwenden.

  9. Klicken Sie auf OK.

  10. Klicken Sie auf Speichern, um die Änderungen in der Hauptkonfiguration zu speichern.

33.6.4 Importieren der eDirectory-Herkunftsverbürgung in den WebSphere-Keystore

In diesem Abschnitt wird beschrieben, wie Sie die eDirectory-Herkunftsverbürgungszertifikate in den Keystore auf dem Computer importieren, auf dem der WebSphere-Server gehostet wird. Dazu stehen Ihnen folgende Möglichkeiten zur Verfügung:

Zertifikate mit der WebSphere-Administrationskonsole importieren

  1. Kopieren Sie die eDirectory-Herkunftsverbürgungszertifikate auf den Computer, auf dem der WebSphere-Server gehostet wird.

    Identity Manager importiert die Zertifikate in die folgenden Speicherorte der IBM-JRE für WebSphere:

    • Datei cacerts

    • Verzeichnis /lib/security, beispielsweise /opt/IBM/WebSphere/AppServer/java_1.7_64/jre/lib/security

  2. Melden Sie sich bei der Administrationskonsole von WebSphere als Admin-Benutzer an.

  3. Erweitern Sie im linken Bereich den Eintrag Sicherheit > Verwaltung der SSL-Zertifikate und Schlüssel.

  4. Klicken Sie im Inhaltsbereich unter Zugehörige Elemente auf Keystores und Zertifikate.

  5. Wählen Sie NodeDefaultTrustStore (bzw. den verwendeten Verbürgungsspeicher).

  6. Klicken Sie unter Zusätzliche Eigenschaften auf Signierzertifikate.

  7. Klicken Sie auf Add.

  8. Geben Sie den Aliasnamen und den vollständigen Pfad zur Zertifikatsdatei ein.

  9. Ändern Sie den Datentyp in der Dropdown-Liste in Binary DER data.

  10. Klicken Sie auf OK.

    Jetzt sollte das Zertifikat in der Liste der Signierzertifikate angezeigt werden.

  11. Klicken Sie auf Speichern, um die Änderungen in der Hauptkonfiguration zu speichern.

Zertifikate über die Befehlszeile importieren

Das Zertifikat muss über das WebSphere-Keytool in den WebSphere-Keystore importiert werden. Das WebSphere-Keytool befindet sich standardmäßig im Verzeichnis /IBM/WebSphere/AppServer/java/bin.Der Store-Typ lautet PKCS12.

  1. Kopieren Sie die eDirectory-Herkunftsverbürgungszertifikate auf den Computer, auf dem der WebSphere-Server gehostet wird.

    Bei der Installation der Benutzeranwendung werden die Zertifikate in das Verzeichnis exportiert, in dem Sie die Benutzeranwendung installieren.

  2. Führen Sie auf dem Computer, auf dem der WebSphere-Server gehostet wird, in der Befehlszeile das Keytool aus.

    Beispiel:

    keytool -import -trustcacerts -file servercert.der -alias myserveralias 
    -keystore trust.p12 -storetype PKCS12
    

    HINWEIS:Wenn sich auf Ihrem System mehrere trust.p12-Dateien befinden, müssen Sie ggf. den vollständigen Pfad zu der Datei angeben.

33.6.5 Anwenden der uneingeschränkten Richtliniendateien für das IBM JDK

Damit die Identitätsanwendungen mit größtmöglicher Leistung ausgeführt werden können, müssen Sie uneingeschränkte Richtliniendateien für das IBM-JDK auf dem Server ausführen, auf dem Sie die Anwendungen installiert haben. Diese uneingeschränkten Richtliniendateien müssen auch für jeden WebSphere-IBM-JDK-Server angewendet werden, auf dem das RBPM ausgeführt wird.

Überprüfen Sie bei jedem IBM-JDK am WebSphere-Server, ob die uneingeschränkten Richtliniendateien angewendet wurden. Ohne diese uneingeschränkten Richtliniendateien tritt beim Starten des RBPM der Fehler Ungültige Schlüsselgröße auf.

33.6.6 Übergeben der preferIPv4Stack-Eigenschaft an die JVM

Die Caching-Implementierung erfolgt bei den Identitätsanwendungen mithilfe von JGroups. Bei einigen Konfigurationen muss dabei für JGroups die preferIPv4Stack-Eigenschaft auf „true“ gesetzt werden, damit die mcast_addr-Bindung erfolgreich hergestellt werden kann.

Ohne diese Option tritt möglicherweise der folgende Fehler auf:

[10/1/09 16:11:22:147 EDT] 0000000d UDP           W org.jgroups.util.Util
createMulticastSocket could not bind to /228.8.8.8 (IPv4 address); make sure
your mcast_addr is of the same type as the IP stack (IPv4 or IPv6).

Unter Umständen wird der folgende Fehler angezeigt:

[3/21/12 10:04:32:470 EDT] 00000024 UDP      E org.jgroups.protocols.TP down
failed sending message to null (131 bytes)
        java.lang.Exception: dest=/228.8.8.8:45654 (134 bytes)
    at org.jgroups.protocols.UDP._send(UDP.java:353)

Der Parameter java.net.preferIPv4Stack=true ist eine Systemeigenschaft, die auf dieselbe Weise festgelegt werden kann wie andere Systemeigenschaften, wie z. B. extend.local.config.dir. Anweisungen zum Festlegen von Systemeigenschaften finden Sie in Abschnitt 33.6.2, Hinzufügen von Benutzeranwendungs-Konfigurationsdateien und JVM-Systemeigenschaften.

33.6.7 Einrichten von JMS in WebSphere

Die Identitätsanwendungen speichern Email-Nachrichten dauerhaft mithilfe des dauerhaften Speichers eines Java Message Service (JMS). Wenn der JMS nicht ordnungsgemäß konfiguriert ist, gehen alle Email-Nachrichten in der Speicherwarteschlange verloren, sobald der Anwendungsserver heruntergefahren wird.

  1. Melden Sie sich bei der Administrationskonsole von WebSphere als Admin-Benutzer an.

  2. Erstellen Sie einen neuen Bus mit den folgenden Schritten:

    1. Klicken Sie auf Dienstintegration > Busse.

    2. Klicken Sie auf Neu.

    3. Legen Sie einen Namen für den Bus fest. Beispiel: IDMProvBus.

    4. Deaktivieren Sie die Option Bussicherheit.

    5. Klicken Sie auf Weiter, und bestätigen Sie die Änderungen.

    6. Klicken Sie auf Fertig stellen und dann auf Speichern.

  3. Konfigurieren Sie den Bus mit den folgenden Schritten:

    1. Wählen Sie unter Dienstintegration > Busse den Bus aus, den Sie in Schritt 2 erstellt haben.

    2. Klicken Sie auf Konfiguration > Allgemeine Eigenschaften.

    3. Legen Sie eine Beschreibung für den Bus fest. Beispiel: Bus für die IDM-Anwendungen.

    4. Klicken Sie auf Anwenden und dann auf Speichern.

    5. Klicken Sie auf der Registerkarte Konfiguration auf Topologie > Busmitglieder.

    6. Klicken Sie auf Hinzufügen.

    7. Geben Sie an, ob die Datei „IDMProv.war“ auf einem Server, in einem Cluster oder auf einem WebSphere-MQ-Server bereitgestellt wurde, und klicken Sie auf Weiter.

    8. Geben Sie unter Dateispeicher den Typ des Nachrichtenspeichers an, und klicken Sie auf Weiter.

    9. Prüfen Sie die Standardwerte für den Dateispeicher, und klicken Sie auf Weiter.

    10. (Optional) Bearbeiten Sie die Leistungsparameter für den Bus.

    11. Klicken Sie auf Weiter und dann auf Fertig stellen.

  4. Erstellen Sie eine Themenverbindung für den Bus mit den folgenden Schritten:

    1. Navigieren Sie zu Ressourcen > JMS > Themenverbindungs-Factory.

    2. Wählen Sie im Menü Bereiche den gewünschten Bereich aus. Beispiel: Node=MeinKnoten01, Server=Server1.

    3. Klicken Sie auf Neu.

    4. Wählen Sie Standard-Messaging-Anbieter, und klicken Sie auf OK.

    5. Klicken Sie auf Konfiguration.

    6. Legen Sie einen Namen für die Themenverbindung fest. Beispiel: VerbindungsFactory.

    7. Geben Sie unter JNDI-Name erneut den Namen ein. Beispiel: VerbindungsFactory.

    8. Geben Sie eine kurze Beschreibung für die Themenverbindung an. Beispiel: Themenverbindungs-Factory für die IDM-Anwendungen.

    9. Wählen Sie unter Busname den Bus aus, den Sie in Schritt 2 erstellt haben.

    10. Klicken Sie auf Dauerhaftes Abonnement > Client, und geben Sie IDMNotificationDurableTopic an.

    11. Klicken Sie auf Dienstgüte > Dauerhafte Nachrichtenzuverlässigkeit, und wählen Sie Zuverlässigkeit dauerhaft.

    12. Klicken Sie auf Dauerhafte Abonnements freigeben > Erweitertes Messaging, und wählen Sie Niemals freigeben.

    13. Klicken Sie auf Anwenden und dann auf Fertig stellen.

  5. Erstellen Sie ein Thema mit den folgenden Schritten:

    1. Navigieren Sie zu Ressourcen > JMS > Themen.

    2. Wählen Sie den gewünschten Bereich aus. Beispiel: Node=MeinKnoten01, Server=Server1.

    3. Klicken Sie auf Neu.

    4. Wählen Sie Standard-Messaging-Anbieter, und klicken Sie auf OK.

    5. Klicken Sie auf Konfiguration.

    6. Legen Sie einen Namen für das Thema fest. Beispiel: IDMNotificationDurableTopic.

    7. Für JNDI-Name gilt die folgende Syntax: Thema/Name. Beispiel: topic/IDMNotificationDurableTopic.

    8. Geben Sie eine kurze Beschreibung für die Themenverbindung an. Beispiel: Thema für die IDM-Anwendungen.

    9. Wählen Sie unter Busname den Bus aus, den Sie in Schritt 2 erstellt haben.

    10. Klicken Sie auf Themenbereich, und wählen Sie Default. Topic.Space.

    11. Klicken Sie auf JMS-Zustellungsmodus, und wählen Sie Dauerhaft.

    12. Klicken Sie auf Anwenden und dann auf Speichern.

  6. Melden Sie sich von der WebSphere-Konsole ab.

  7. Starten Sie WebSphere auf dem Server neu, auf dem Sie die WAR-Datei für die Identitätsanwendungen bereitgestellt haben.

  8. Ermitteln Sie anhand der Datei SystemOut.log, ob der JMS-Server ordnungsgemäß eingerichtet ist.

    Fehlerhafte Einrichtung

    Wenn der JMS-Server nicht ordnungsgemäß eingerichtet ist, enthält die Datei SystemOut.log die folgenden Zeilen (in der angegebenen Reihenfolge):

    INFO  [JMSConnectionMediator] Starting JMS notification system
    WARN  [NotificationEngine] Could not properly initialize JMS persistence for the notification system. Will revert back to non-persistent asynchronous notification system. 
    INFO  [NotificationThread] Starting asynchronous notification system 
    
    Richtige Einrichtung

    Bei einer erfolgreichen Konfiguration enthält die Datei SystemOut.log die folgenden Informationen (in der angegebenen Reihenfolge):

    INFO  [JMSConnectionMediator] Starting JMS notification system
    %connection information%
    INFO  [NotificationThread] Starting asynchronous notification system
    
    
    ========
    
    [9/7/14 14:39:52:167 EDT] 00000000 SibMessage    I   [:] CWSID0021I: Configuration reload is enabled for bus IDMProvBus. 
    [9/7/14 14:39:52:372 EDT] 00000000 SibMessage    I   [:] CWSIS1569I: Messaging engine N35020Node02.server1-IDMProvBus is using a file store. 
    
    ========
    
    [9/7/14 14:41:32:613 EDT] 0000000c SystemOut     O 14:41:32,608 INFO  [JMSConnectionMediator] Starting JMS notification system 
    
    [9/7/14 14:41:32:841 EDT] 0000000c SharedPool    I   J2CA0086W: Shareable connection MCWrapper id 5c175c17  Managed connection [com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection@490f490f <managedConnectionFactory=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedTopicConnectionFactoryImpl@1f9c1f9c <logWriter=null> <busName=IDMProvBus> <clientID=IDMNotificationDurableTopic> <userName=null> <password=null> <xaRecoveryAlias=> <nonPersistentMapping=ExpressNonPersistent> <persistentMapping=ReliablePersistent> <durableSubscriptionHome=N35020Node02.server1-IDMProvBus> <readAhead=Default> <temporaryQueueNamePrefix=null> <temporaryTopicNamePrefix=null> <target=null> <targetSignificance=Preferred> <targetTransportChain=null> <targetType=BusMember> <providerEndpoints=null> <connectionProximity=Bus> <shareDataSourceWithCMP=false> <shareDurableSubscriptions=NeverShared> <cachedFactory=com.ibm.ws.sib.api.jms.impl.JmsFactoryFactoryImpl@4fb24fb2> <producerDoesNotModifyPayloadAfterSet=false> <consumerDoesNotModifyPayloadAfterGet=false>]> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <localTransaction=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaManagedConnection$JmsJcaLocalTransaction@78ce78ce <localSITransaction=null>]> <xaResource=null> <metaData=null> <userDetails=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaUserDetails@5b4d5b4d <userName=null> <password=null>]> <subject=null> <logWriter=null> <sessions=[[com.ibm.ws.sib.api.jmsra.impl.JmsJcaSessionImpl@21ff21ff <managedConnection=1225738511> <connection=828453217> <transacted=false> <applicationLocalTransaction=null> <reqInfo=[com.ibm.ws.sib.api.jmsra.impl.JmsJcaConnectionRequestInfo@219a219a> <userDetails=null> <coreConnection=com.ibm.ws.sib.processor.impl.ConnectionImpl@b0b0b0b> <request counter=0>]> <sessionClosed=false> <sessionInvalidated=false>]]> <connectionListeners=[com.ibm.ejs.j2c.ConnectionEventListener@1572625852]>]  State:STATE_TRAN_WRAPPER_INUSE 
     from resource ConnectionFactory was used within a local transaction containment boundary. 
    
    [9/7/14 14:41:32:938 EDT] 0000001a SystemOut     O 14:41:32,938 INFO  [NotificationThread] Starting asynchronous notification system