L'application utilisateur utilise une base de données pour diverses tâches (stockage des données de configuration, stockage des données relatives aux activités de workflow, etc.). Pour pouvoir installer le module de provisioning basé sur les rôles et l'application utilisateur, vous devez avoir installé et configuré l'une des bases de données prises en charge pour votre plate-forme. Cela implique les opérations suivantes :
Installation de la base de données et de son pilote.
Création d'une base de données ou d'une instance de base de données.
Enregistrement des paramètres de base de données suivants en vue de les utiliser dans la procédure d'installation de l'application utilisateur :
hôte et port
nom de la base de données, nom et mot de passe de l'utilisateur
Création d'un fichier de source de données pointant vers la base de données.
La méthode diffère selon le serveur d'applications. Dans le cas de JBoss, le programme d'installation de l'application utilisateur crée un fichier source de données concernant le serveur d'applications qui pointe vers la base de données, et il le nomme en fonction du fichier WAR du module de provisioning basé sur les rôles Identity Manager. Dans le cas de WebSphere et WebLogic, configurez la source de données manuellement avant l'installation.
Les bases de données doivent prendre en charge le codage Unicode.
L'application utilisateur nécessite que le jeu de caractères de la base de données utilise le codage Unicode. Ainsi, UTF-8 est un exemple de jeu de caractères employant ce codage, alors que Latin1 ne l'utilise pas. Avant d'installer l'application utilisateur, vérifiez que votre base de données est configurée avec un jeu de caractères utilisant le codage Unicode.
REMARQUE :si vous effectuez une migration vers une nouvelle version du module de provisioning basé sur les rôles, vous devez utiliser la même base de données d'application utilisateur que pour l'installation précédente, c'est-à-dire celle depuis laquelle vous effectuez la migration.
L'application utilisateur requiert certaines options de configuration pour MySQL (voir ci-dessous).
L'application utilisateur se sert du moteur de stockage INNODB, ce qui permet de choisir des types de tables INNODB pour MySQL. Si vous créez une table MySQL sans indiquer son type, la table sera de type MyISAM par défaut. Pour vous assurer que votre serveur MySQL utilise INNODB, vérifiez que my.cnf (Linux ou Solaris) ou my.ini (Windows) contient l'option suivante :
default-table-type=innodb
Il ne doit pas contenir l'option skip-innodb.
Au lieu de configurer l'option default-table-type=innodb, vous pouvez ajouter l'option ENGINE=InnoDB aux instructions de création de table dans le script SQL de votre base de données.
Indiquez UTF-8 comme ensemble de caractères pour l'ensemble du serveur ou simplement pour une base de données. Indiquez UTF-8 sur l'ensemble du serveur en incluant l'option suivante dans my.cnf (Linux ou Solaris) ou my.ini (Windows) :
character_set_server=utf8
Pour indiquer le jeu de caractères d'une base de données au moment de la création de la base de données, utilisez la commande suivante :
create database databasename character set utf8 collate utf8_bin;
Si vous configurez le jeu de caractères pour la base de données, vous devez également indiquer celui de l'URL JDBC dans le fichier IDM-ds.xml, comme dans l'exemple suivant :
<connection-url>jdbc:mysql://localhost:3306/databasename?useUnicode=true&characterEncoding=utf8&connectionCollation=utf8_bin</connection-url>
Assurez-vous que la distinction de la casse est cohérente sur les serveurs et plates-formes si vous prévoyez sauvegarder et restaurer des données sur des serveurs ou des plates-formes. Pour assurer cette cohérence, indiquez la même valeur (0 ou 1) pour les noms_tables_minuscules de tous vos fichiers my.cnf (Linux ou Solaris) ou my.ini (Windows), au lieu d'accepter la valeur par défaut (valeurs par défaut Windows à 0 et valeurs par défaut Linux à 1.) Indiquez cette valeur avant de créer la base de données qui contiendra les tables Identity Manager. Vous pouvez par exemple spécifier
lower_case_table_names=1
dans les fichiers my.cnf et my.ini pour toutes les plates-formes sur lesquelles vous souhaitez sauvegarder et restaurer une base de données.
Vous devez ajouter l'entrée ansi à votre fichier my.cnf (sous Linux) ou my.ini (sous Windows). Si vous ne le faites pas, les tables RBPM sont créées mais les données initiales des tables ne sont pas chargées et vous risquez de recevoir un message d'erreur de type Définition de page du conteneur de l'invité introuvable
.
Une fois que vous avez ajouté l'entrée ansi, le fichier my.cnf (ou my.ini) doit se présenter comme suit :
# 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
Pour vérifier que la modification permettant d'utiliser le mode Ansi a bien été prise en compte, vous pouvez exécuter l'instruction SQL suivante sur votre serveur MySQL :
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)
Le compte utilisateur employé au cours du processus d'installation doit bénéficier d'un accès total à la base de données qui sera utilisée par l'application utilisateur (c'est-à-dire en être propriétaire). En outre, ce compte doit pouvoir accéder aux tables du système. Celles-ci peuvent varier en fonction de votre environnement.
Créez un utilisateur devant se loguer au serveur MySQL et accordez-lui des privilèges, par exemple :
GRANT ALL PRIVILEGES ON <nom_base_de_données.>* TO <nom_utilisateur>@<hôte> IDENTIFIED BY ‘mot_de_passe’
L'ensemble minimum de privilèges est CREATE, INDEX, INSERT, UPDATE, DELETE et LOCK TABLES. Pour obtenir des informations sur la commande GRANT, reportez-vous à http://www.mysql.org/doc/refman/5.0/en/grant.html.
IMPORTANT :le compte utilisateur doit également posséder des droits de sélection au niveau de la table mysql.user. Pour configurer les droits appropriés, la syntaxe SQL doit être la suivante :
USE mysql; GRANT SELECT ON mysql.user TO <username>@<host>;
Lorsque vous créez votre base de données Oracle, veillez à bien utiliser AL32UTF8 afin de définir un ensemble de caractères codés en Unicode. (Voir AL32UTF8.)
Lorsque vous créez un utilisateur pour votre base de données Oracle, vous devez générer les instructions suivantes à l'aide de l'utilitaire SQL Plus. Ces instructions créent l'utilisateur et définissent ses privilèges. Accordez les privilèges CONNECT et RESOURCE, par exemple :
CREATE USER utilisateur_IDM IDENTIFIED BY mot_de_passe
GRANT CONNECT, RESOURCE to utilisateur_IDM
UTF-8 sur Oracle 11g. Sur Oracle 11g, vous pouvez entrer la commande suivante afin de confirmer que la base prend en charge le codage UTF-8 :
select * from nls_database_parameters;
Si vous n'avez pas configuré la base pour UTF-8, les données renvoyées sont les suivantes :
NLS_CHARACTERSET WE8MSWIN1252
Si vous avez configuré la base pour UTF-8, les données renvoyées sont les suivantes :
NLS_CHARACTERSET AL32UTF8
Configurez votre base de données MS SQL Server comme suit :
Installez MS SQL Server.
Connectez-vous au serveur et ouvrez une application pour créer la base de données et l'utilisateur de la base de données (généralement l'application SQL Server Management Studio).
Créez une base de données. SQL Server ne permet pas aux utilisateurs de sélectionner le jeu de caractères des bases de données. L'application utilisateur stocke les données caractères SQL Server dans un type de colonne NCHAR qui prend en charge le codage UTF-8.
Créez un login.
Ajoutez le login en tant qu'utilisateur de la base de données.
Accordez ces privilèges au login : CREATE TABLE, CREATE INDEX, SELECT, INSERT, UPDATE et DELETE.
L'application utilisateur requiert la version 3.0.3.0.1119.0 du pilote JDBC pour Microsoft SQL Server 2008. Notez que seuls les systèmes d'exploitation Sun Solaris, Red Hat Linux et Windows 2000 ou version ultérieure sont officiellement pris en charge avec ce pilote JDBC.
Cette section contient des remarques sur la configuration de DB2.
Les fichiers JAR du pilote de base de données doivent être sélectionnés au cours de l'installation, dans l'écran
. Toutefois, le bouton Parcourir en regard du champ ne vous permet de sélectionner qu'un seul fichier JAR. Or, pour DB2, vous devez fournir 2 fichiers JAR :db2jcc.jar
db2jcc_license_cu.jar
Par conséquent, si vous exécutez le programme d'installation sous WebSphere (le seul serveur d'applications pris en charge avec DB2), vous pouvez sélectionner un fichier JAR mais vous devrez saisir manuellement le second fichier. Pour ce faire, utilisez le séparateur de fichiers approprié pour le système d'exploitation sous lequel s'exécute le programme. Vous pouvez aussi spécifier manuellement les deux fichiers.
Par exemple, sous Windows :
c:\db2jars\db2jcc.jar;c:\db2jars\db2jcc_license_cu.jar
Par exemple, sous Solaris et Linux :
/home/lab/db2jars/db2jcc.jar:/home/lab/db2jcc_license_cu.jar
Lorsque vous utilisez DB2, un message d'erreur indiquant que la transaction en cours a été annulée du fait d'un blocage ou d'un timeout peut apparaître. Il peut résulter de la présence simultanée d'un grand nombre d'utilisateurs et de bases de données.
DB2 propose plusieurs moyens de résoudre les conflits de verrous, notamment le réglage de l'optimiseur basé sur les coûts. Excellente source de la documentation d'administration de DB2, le guide des performances contient de nombreuses informations sur le réglage.
Aucune valeur de réglage n'est définie pour toutes les installations car le niveau de simultanéité et la taille des données varient. Toutefois, les conseils suivants sur le réglage de DB2 peuvent servir à votre installation :
La commande reorgchk update statistics actualisera les statistiques utilisées par l'optimiseur. Les mises à jour périodiques de ces statistiques peuvent suffire à minimiser le problème.
L'utilisation du paramètre de registre DB2 DB2_RR_TO_RS peut améliorer la simultanéité du fait du non-verrouillage de la clé de ligne suivante insérée ou mise à jour.
Augmentez la valeur des paramètres MAXLOCKS et LOCKLIST (base de données).
Augmentez la valeur de la propriété currentLockTimeout (pool de connexion de la base de données).
Utilisez l'assistant de configuration de base de données et optimisez-le pour accélérer les transactions.
Rendez VOLATILES toutes les tables de l'application utilisateur pour indiquer à l'optimiseur que la cardinalité variera considérablement. Pour rendre VOLATILE la table AFACTIVITY par exemple, vous pouvez émettre la commande : ALTER TABLE AFACTIVITY VOLATILE
La commande ALTER TABLE doit être exécutée après le démarrage de l'application utilisateur et une fois les tables de la base de données créées. Pour plus d'informations, reportez-vous à la documentation sur cette instruction. Voici les instructions SQL pour toutes les tables de l'application utilisateur :
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