Die Benutzeranwendung verwendet eine Datenbank für eine Reihe bestimmter Aufgaben, z. B. zum Speichern von Konfigurationsdaten und von Daten aus Workflow-Aktivitäten. Bevor Sie das rollenbasierte Bereitstellungsmodul und die Benutzeranwendung installieren können, müssen Sie eine der unterstützten Datenbanken für Ihre Plattform installiert und konfiguriert haben. Dies beinhaltet:
Installieren Ihrer Datenbank und des Datenbanktreibers.
Erstellen einer Datenbank oder einer Datenbankinstanz.
Notieren der folgenden Datenbankparameter zur Verwendung in der Installationsprozedur für die Benutzeranwendung:
Host und Port
Datenbankname, Benutzername und Benutzerpasswort
Erstellen einer Datenquelldatei, die auf die Datenbank zeigt.
Die Methode variiert je nach Anwendungsserver. Für JBoss erstellt das Installationsprogramm für die Benutzeranwendung eine Anwendungsserver-Datenquelldatei, die auf die Datenbank verweist, und benennt die Datei anhand des Namens der WAR-Datei des rollenbasierten Bereitstellungsmoduls für Identity Manager. Für WebSphere und WebLogic müssen Sie die Datenquelle vor der Installation manuell konfigurieren.
Datenbanken müssen für die Verwendung der Unicode-Kodierung aktiviert sein.
Die Benutzeranwendung setzt voraus, dass der Zeichensatz der Datenbank die Unicode-Kodierung verwendet. So ist beispielsweise UTF-8 ein Zeichensatz, der die Unicode-Kodierung verwendet, Latin-1 hingegen verwendet keine Unicode-Kodierung. Stellen Sie vor der Installation der Benutzeranwendung sicher, dass Ihre Datenbank mit einem Zeichensatz konfiguriert wurde, der die Unicode-Kodierung verwendet.
HINWEIS:Wenn Sie auf eine neue Version des rollenbasierten Bereitstellungsmoduls migrieren, müssen Sie die gleiche Benutzeranwendungsdatenbank verwenden, die Sie für die vorherige Installation verwendet haben (d. h. die Installation, von der aus Sie migrieren.)
Die Benutzeranwendung erfordert die unten beschriebenen Konfigurationsoptionen für MySQL.
Die Benutzeranwendung verwendet die INNODB-Storage-Engine, sodass Sie INNODB-Tabellentypen für MySQL auswählen können. Wenn Sie eine MySQL-Tabelle erstellen, ohne den Tabellentyp anzugeben, wird der Tabelle standardmäßig der Tabellentyp „MyISAM“ zugeordnet. Sie können sicherstellen, dass Ihr MySQL-Server INNODB verwendet, indem Sie überprüfen, ob my.cnf (Linux oder Solaris) oder my.ini (Windows) die folgende Option enthält:
default-table-type=innodb
Die Option skip-innodb darf nicht enthalten sein.
Alternativ zum Festlegen der Option default-table-type=innodb können Sie die Option ENGINE=InnoDB an die „Create Table“-Anweisungen im SQL-Skript für Ihre Datenbank anhängen.
Legen Sie UTF-8 als Zeichensatz für den gesamten Server oder nur für eine Datenbank fest. Legen Sie UTF-8 serverübergreifend fest, indem Sie die folgende Option in my.cnf (Linux oder Solaris) oder my.ini (Windows) aufnehmen:
character_set_server=utf8
Sie können auch den Zeichensatz für eine Datenbank bei ihrer Erstellung angeben, indem Sie den folgenden Befehl eingeben:
create database databasename character set utf8 collate utf8_bin;
Wenn Sie den Zeichensatz für die Datenbank festlegen, müssen Sie ihn auch in der JDBC-URL in der Datei IDM-ds.xml festlegen. Beispiel:
<connection-url>jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_bin</connection-url>
Stellen Sie sicher, dass die Beachtung der Groß- und Kleinschreibung server- bzw. plattformübergreifend einheitlich geregelt ist, falls Daten server- bzw. plattformübergreifend gesichert und wiederhergestellt werden. Sie können die Einheitlichkeit gewährleisten, indem Sie für lower_case_table_names in allen my.cnf-Dateien (Linux oder Solaris) oder my.ini-Dateien (Windows) denselben Wert angeben (0 oder 1), anstatt den vorgegebenen Wert zu übernehmen (die Windows-Vorgabe ist 0, die Linux-Vorgabe ist 1). Legen Sie diesen Wert fest, bevor Sie die Datenbank für die Identity Manager-Tabellen erstellen. Beispiel: Sie definieren
lower_case_table_names=1
in den my.cnf- und my.ini-Dateien für alle Plattformen, auf denen eine Datenbank gesichert und wiederhergestellt werden soll.
Sie müssen den Eintrag ansi zur Datei „my.cnf“ (auf Linux) oder zur Datei „my.ini“ (auf Windows) hinzufügen. Wenn Sie diesen Eintrag nicht hinzufügen, werden die RBPM-Tabellen erstellt, aber die anfänglichen Daten werden nicht geladen und möglicherweise wird die Fehlermeldung Definition der Gast-Containerseite wurde nicht gefunden
angezeigt.
Die Datei „my.cnf“ (bzw. „my.ini“) sollte folgendermaßen aussehen, nachdem Sie den ansi-Eintrag hinzugefügt haben:
# These variables are required for IDM User Application character_set_server=utf8 default-table-type=innodb # Put the server in ANSI SQL mode. #See http://www.mysql.com/doc/en/ANSI_mode.html ansi
Führen Sie zum Bestätigen, dass die Änderung auf Verwendung des ANSI-Modus wirksam wurde, die folgenden SQL-Anweisungen auf dem MySQL-Server aus:
mysql> select @@global.sql_mode; +-------------------------------------------------------------+ | @@global.sql_mode | +-------------------------------------------------------------+ | REAL_AS_FLOAT,PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,ANSI | +-------------------------------------------------------------+ 1 row in set (0.00 sec)
Das während der Installation verwendete Benutzerkonto muss Besitzer der Datenbank sein, die von der Benutzeranwendung verwendet wird. Zudem benötigt dieses Benutzerkonto Zugriff auf die Tabellen im System. Je nach Umgebung können die Tabellen unterschiedlich sein.
Erstellen Sie einen Benutzer zur Anmeldung beim MySQL-Server und gewähren Sie ihm Rechte. Beispiel:
GRANT ALL PRIVILEGES ON <dbname.>* TO <Benutzername>@ <host> IDENTIFIED BY ‘ Passwort’
Die mindestens erforderlichen Rechte sind: CREATE, INDEX, INSERT, UPDATE, DELETE und LOCK TABLES. Die Dokumentation zum GRANT-Befehl finden Sie unter http://www.mysql.org/doc/refman/5.0/en/grant.html.
WICHTIG:Das Benutzerkonto muss auch über „select“-Rechte für die mysql-Benutzertabelle verfügen. Die SQL-Syntax zum Gewähren der geeigneten Rechte:
USE mysql; GRANT SELECT ON mysql.user TO <username>@<host>;
Stellen Sie beim Erstellen einer Oracle-Datenbank sicher, dass Sie „AL32UTF8“ zum Angeben eines Unicode-kodierten Zeichensatzes verwenden. (Siehe AL32UTF8 .)
Sie müssen beim Erstellen eines Benutzers für die Oracle-Datenbank die folgenden Anweisungen mithilfe des SQL Plus-Dienstprogramms ausführen. Diese Befehle erstellen den Benutzer und legen die Rechte des Benutzers fest. Erteilen Sie dem Benutzer CONNECT- und RESOURCE-Rechte, z. B.:
CREATE USER idm-Benutzer IDENTIFIED BY Passwort
GRANT CONNECT, RESOURCE to IDM-Benutzer
UTF-8 unter Oracle 11g. Sie können unter Oracle 11g den folgenden Befehl ausführen, um zu bestätigen, dass UTF-8 aktiviert ist:
select * from nls_database_parameters;
Falls UTF-8 nicht eingerichtet ist, werden folgende Daten zurückgegeben:
NLS_CHARACTERSET WE8MSWIN1252
Wenn UTF-8 eingerichtet ist, werden folgende Daten zurückgegeben:
NLS_CHARACTERSET AL32UTF8
Richten Sie die MS SQL Server-Datenbank wie folgt ein:
Installieren Sie den MS SQL-Server.
Stellen Sie eine Verbindung zum Server her und öffnen Sie eine Anwendung zur Erstellung der Datenbank und des Datenbankbenutzers (üblicherweise die Anwendung „SQL Server Management Studio“).
Erstellen Sie eine Datenbank. SQL Server erlaubt es Benutzern nicht, den Zeichensatz für Datenbanken auszuwählen. Die Benutzeranwendung speichert SQL Server-Zeichendaten als NCHAR-Spaltentyp, der UTF-8 unterstützt.
Erstellen Sie eine Anmeldung.
Fügen Sie die Anmeldeinformationen für einen Benutzer der Datenbank hinzu.
Erteilen Sie der Anmeldung die folgenden Rechte: CREATE TABLE, CREATE INDEX, SELECT, INSERT, UPDATE und DELETE.
Die Benutzeranwendung benötigt Version 3.0.3.0.1119.0 des JDBC-Treibers für Microsoft SQL Server 2008. Beachten Sie, dass nur die Betriebssysteme Sun Solaris, Red Hat Linux und Windows 2000 oder höher mit diesem JDBC-Treiber offiziell unterstützt werden.
In diesem Abschnitt finden Sie Hinweise zum Konfigurieren von DB2.
Die Datenbanktreiber-JAR-Dateien müssen während der Installation auf dem Bildschirm
ausgewählt werden. Allerdings können Sie mithilfe der Schaltfläche „Durchsuchen“ des Felds nur eine (1) JAR-Datei auswählen. Sie müssen für DB2 zwei (2) JAR-Dateien angeben:db2jcc.jar
db2jcc_license_cu.jar
Wenn Sie also das Installationsprogramm mit WebSphere (dem einzigen Anwendungsserver, der für DB2 unterstützt wird) ausführen, können Sie nur eine JAR-Datei auswählen. Daher müssen Sie die zweite Datei manuell eingeben und dabei das richtige Dateitrennzeichen für das Betriebssystem verwenden, auf dem das Installationsprogramm ausgeführt wird. Alternativ können Sie beide Dateinamen manuell eingeben.
Zum Beispiel unter Windows:
c:\db2jars\db2jcc.jar;c:\db2jars\db2jcc_license_cu.jar
Beispielsweise unter Solaris und Linux:
/home/lab/db2jars/db2jcc.jar:/home/lab/db2jcc_license_cu.jar
Wenn Sie bei der Verwendung von DB2 eine Fehlermeldung erhalten, die besagt, dass aufgrund eines Deadlocks oder einer Zeitüberschreitung die aktuelle Transaktion rückabgewickelt wurde, kann dies auf eine hohe gleichzeitige Datenbanknutzung zurückzuführen sein.
DB2 stellt viele Techniken zum Auflösen von Sperrkonflikten bereit, darunter das Optimieren des kostenbasierten Optimierungsprogramms. Das Leistungshandbuch, das Bestandteil der DB2-Administratordokumentation ist, ist eine hervorragende Quelle mit vielen Optimierungstipps.
Es gibt keine vorgeschriebenen Optimierungswerte, die für alle Installationen verwendet werden können, da sich das Ausmaß des gemeinsamen Zugriffs und der Umfang der Daten unterscheiden können. Nichtsdestotrotz finden Sie hier einige DB2-Optimierungstipps, die für Ihre Installation von Belang sein könnten:
Der Befehl reorgchk update statistics aktualisiert die vom Optimierungsprogramm verwendeten Statistiken. Allein das regelmäßige Aktualisieren dieser Statistiken könnte genügen, um das Problem zu beheben.
Durch die Verwendung des DB2-Registrierungsparameters DB2_RR_TO_RS könnte der gemeinsame Zugriff verbessert werden, indem der nächste Schlüssel der Zeile, die eingefügt oder aktualisiert wurde, nicht gesperrt wird.
Erhöhen Sie die Werte für MAXLOCKS und LOCKLIST für die Datenbank.
Erhöhen Sie den Wert der currentLockTimeout-Eigenschaft für den Datenbank-Verbindungspool.
Verwenden Sie den Database Configuration Advisor und optimieren Sie für schnellere Transaktionen.
Ändern Sie alle Tabellen der Benutzeranwendung auf VOLATILE, damit das Optimierungsprogramm weiß, dass die Kardinalität der Tabelle deutlich abweichen kann. Beispielsweise können Sie die AFACTIVITY-Tabelle VOLATILE machen, indem Sie folgenden Befehl ausführen: ALTER TABLE AFACTIVITY VOLATILE
Die ALTER TABLE-Befehle müssen ausgeführt werden, nachdem die Benutzeranwendung einmal gestartet wurde und die Datenbanktabellen erstellt wurden. Weitere Informationen zu dieser Anweisung finden Sie in der Dokumentation zu ALTER TABLE. Nachfolgend stehen die SQL-Anweisungen für alle Benutzeranwendungstabellen:
ALTER TABLE AFACTIVITY VOLATILE ALTER TABLE AFACTIVITYTIMERTASKS VOLATILE ALTER TABLE AFBRANCH VOLATILE ALTER TABLE AFCOMMENT VOLATILE ALTER TABLE AFDOCUMENT VOLATILE ALTER TABLE AFENGINE VOLATILE ALTER TABLE AFENGINESTATE VOLATILE ALTER TABLE AFMODEL VOLATILE ALTER TABLE AFPROCESS VOLATILE ALTER TABLE AFPROVISIONINGSTATUS VOLATILE ALTER TABLE AFQUORUM VOLATILE ALTER TABLE AFRESOURCEREQUESTINFO VOLATILE ALTER TABLE AFWORKTASK VOLATILE ALTER TABLE AF_ROLE_REQUEST_STATUS VOLATILE ALTER TABLE ATTESTATION_ATTESTER VOLATILE ALTER TABLE ATTESTATION_ATTRIBUTE VOLATILE ALTER TABLE ATTESTATION_QUESTION VOLATILE ALTER TABLE ATTESTATION_REPORT VOLATILE ALTER TABLE ATTESTATION_REQUEST VOLATILE ALTER TABLE ATTESTATION_RESPONSE VOLATILE ALTER TABLE ATTESTATION_SURVEY_QUESTION VOLATILE ALTER TABLE ATTESTATION_TARGET VOLATILE ALTER TABLE AUTHPROPS VOLATILE ALTER TABLE DATABASECHANGELOG VOLATILE ALTER TABLE DATABASECHANGELOGLOCK VOLATILE ALTER TABLE DSS_APPLET_BROWSER_TYPES VOLATILE ALTER TABLE DSS_APPLET_CFG VOLATILE ALTER TABLE DSS_APPLET_CFG_MAP VOLATILE ALTER TABLE DSS_BROWSER_TYPE VOLATILE ALTER TABLE DSS_CONFIG VOLATILE ALTER TABLE DSS_EXT_KEY_USAGE_RESTRICTION VOLATILE ALTER TABLE DSS_USR_POLICY_SET VOLATILE ALTER TABLE JBM_COUNTER VOLATILE ALTER TABLE JBM_DUAL VOLATILE ALTER TABLE JBM_ID_CACHE VOLATILE ALTER TABLE JBM_MSG VOLATILE ALTER TABLE JBM_MSG_REF VOLATILE ALTER TABLE JBM_POSTOFFICE VOLATILE ALTER TABLE JBM_ROLE VOLATILE ALTER TABLE JBM_TX VOLATILE ALTER TABLE JBM_USER VOLATILE ALTER TABLE PORTALCATEGORY VOLATILE ALTER TABLE PORTALPORTLETHANDLES VOLATILE ALTER TABLE PORTALPORTLETSETTINGS VOLATILE ALTER TABLE PORTALPRODUCERREGISTRY VOLATILE ALTER TABLE PORTALPRODUCERS VOLATILE ALTER TABLE PORTALREGISTRY VOLATILE ALTER TABLE PROFILEGROUPPREFERENCES VOLATILE ALTER TABLE PROFILEUSERPREFERENCES VOLATILE ALTER TABLE PROVISIONING_CODE_MAP VOLATILE ALTER TABLE PROVISIONING_CODE_MAP_LABEL VOLATILE ALTER TABLE PROVISIONING_VIEW_VALUE VOLATILE ALTER TABLE PROVISIONING_VIEW_VALUE_LABEL VOLATILE ALTER TABLE SECURITYACCESSRIGHTS VOLATILE ALTER TABLE SECURITYPERMISSIONMETA VOLATILE ALTER TABLE SECURITYPERMISSIONS VOLATILE ALTER TABLE SEC_DELPROXY_CFG VOLATILE ALTER TABLE SEC_DELPROXY_SRV_CFG VOLATILE ALTER TABLE SEC_SYNC_CLEANUP_QUEUE VOLATILE