Configuration d'une base de données SQL Server
Configurez une base de données SQL Server pour qu'elle fonctionne avec Jazz ® Team Server, IBM® Engineering Lifecycle Management et Data Warehouse.
Cette procédure requiert de respecter les conditions préalables ci-dessous pour SQL Server :
- Le service est démarré.
- Le pilote Java Database Connectivity (JDBC) est installé sur le serveur ELM . Pour connaître les versions prises en charge de pilote, voir Hardware and software requirements.
- Le protocole TCP est activé pour SQL Server.
- L'utilisateur qui crée la table de base de données doit être membre du rôle serveur fixe sysadmin ou propriétaire de la base de données (dbo).
- Le mot de passe que vous utilisez pour la connexion JDBC ne peut pas contenir les caractères accolade gauche ({) et point-virgule (;).
Vérifiez que la sécurité du serveur fonctionne en mode mixte. Vous pouvez déterminer le mode en vérifiant la sécurité du serveur. La valeur Mode d'authentification SQL Server et Windows doit lui être attribuée.- La base de données de l'entrepôt de données doit être créée avec le classement sensible à la casse.
- Dans SQL Server Management Studio, cliquez avec le bouton droit de la souris sur la connexion au serveur de base de données.
- Dans la fenêtre en incrustation, sélectionnez Propriétés.
- Dans la fenêtre Propriétés du serveur, sélectionnez Avancé et définissez l'entrée Langue par défaut sur Anglais.
- Sauvegardez vos modifications.
Configuration d'une base de données
- Dans le menu Démarrer, recherchez Microsoft SQL Serveret cliquez sur .
- Dans la fenêtre SQL Server Configuration Manager, dans la sous-fenêtre de gauche, cliquez sur .
- Cliquez deux fois sur le protocole Canaux nommés.
- Dans la boîte de dialogue Propriétés de canaux nommés, sélectionnez Oui pour la zone Activé.
- Changez la valeur de la zone Nom du canal comme suit :
\\.\pipe\sql\query. - Cliquez sur Appliquer puis redémarrez les services SQL Server.
- Créez une base de données pour chaque instance de Jazz Team Server, Change and Configuration Management, Quality Management, Requirements Management, Data Collection Component, Lifecycle Query Engine, Link Index Provider, IBM Engineering Lifecycle Optimization - Engineering Insights, applications Global Configuration Management . Créez également une base de données pour chaque entrepôt de données associé à un serveur Jazz Team Server. Par exemple, si vous disposez d'une application CCM, d'une application QM, d'une application RM, d'un serveur Jazz Team Server, d'une application DCC, d'une application LQE, d'une application LDX, d'une application ENI , d'une application GC et d'un entrepôt de données, vous devrez créer 12 bases de données.
CREATE DATABASE jts GOCREATE DATABASE ccm GOCREATE DATABASE qm GOCREATE DATABASE rm GOCREATE DATABASE dcc GOCREATE DATABASE lqe GOCREATE DATABASE ldx GOCREATE DATABASE eni GOCREATE DATABASE gc GOCREATE DATABASE dw GO - Créez un utilisateur et un mot de passe et changez le propriétaire de la base de données en entrant ces commandes :
CREATE LOGIN jtsDBuser WITH PASSWORD = 'jtsDBpswd'; USE jts; exec sp_changedbowner 'jtsDBuser' GOCREATE LOGIN ccmDBuser WITH PASSWORD = 'ccmDBpswd'; USE ccm; exec sp_changedbowner 'ccmDBuser' GOCREATE LOGIN qmDBuser WITH PASSWORD = 'qmDBpswd'; USE qm; exec sp_changedbowner 'qmDBuser' GOCREATE LOGIN rmDBuser WITH PASSWORD = 'rmDBpswd'; USE rm; exec sp_changedbowner 'rmDBuser' GOCREATE LOGIN dccDBuser WITH PASSWORD = 'dccDBpswd'; USE dcc; exec sp_changedbowner 'dccDBuser' GOCREATE LOGIN lqeDBuser WITH PASSWORD = 'lqeDBpswd'; USE lqe; exec sp_changedbowner 'lqeDBuser' GOCREATE LOGIN ldxDBuser WITH PASSWORD = 'ldxDBpswd'; USE ldx; exec sp_changedbowner 'ldxDBuser' GOCREATE LOGIN eniDBuser WITH PASSWORD = 'eniDBpswd'; USE eni; exec sp_changedbowner 'eniDBuser' GOCREATE LOGIN gcDBuser WITH PASSWORD = 'gcDBpswd'; USE gc; exec sp_changedbowner 'gcDBuser' GOCREATE LOGIN dwDBuser WITH PASSWORD = 'dwDBpswd'; USE dw; exec sp_changedbowner 'dwDBuser' GO - Changez le classement des bases de données. Les bases de données ELM requièrent une sensibilité à la casse et la valeur par défaut pour SQL Server est un classement insensible à la casse. A partir de l'outil de ligne de commande, entrez les commandes ci-après. Notez que SQL_Latin1_General_CP437_CS_AS est un exemple et n'importe quel classement CS_AS peut être utilisé :
ALTER DATABASE jts COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE ccm COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE qm COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE rm COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE dcc COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE lqe COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE ldx COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE eni COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE gc COLLATE SQL_Latin1_General_CP437_CS_AS GOALTER DATABASE dw COLLATE SQL_Latin1_General_CP1_CS_AS GO - Modifiez le système de version de ligne pour les bases de données JTS, CCM, QM, RM, DCC, LQE, LDX, ENI, GC et DW. Depuis l'outil de ligne de commande, exécutez les commandes suivantes :Remarque: Vérifiez que la connexion à la base de données est ouverte avant d'exécuter ces commandes.
ALTER DATABASE jts SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE ccm SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE qm SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE rm SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE dcc SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE lqe SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE ldx SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE eni SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE gc SET READ_COMMITTED_SNAPSHOT ON GOALTER DATABASE dw SET READ_COMMITTED_SNAPSHOT ON GO - Créez une variable d'environnement nommée SQLSERVER_JDBC_DRIVER_FILE et faites-la pointer vers le pilote JDBC. L'emplacement du pilote varie en fonction de votre installation.

- Cliquez sur .
- Cliquez sur l'onglet Avancé, puis sélectionnez Variables d'environnement.
- Dans la liste Variables système , cliquez sur Nouveau.
- Dans la zone Nom de la variable , entrez SQLSERVER_JDBC_DRIVER_FILEet dans la zone Valeur de la variable , entrez C:\<Path_to_JDBC_driver>\sqljdbc42.jar, où <Path_to_JDBC_driver> est le chemin d'accès au fichier de l'ordinateur qui héberge les applications et non la base de données.

- Sur les systèmes Unix, ajoutez la déclaration de variable d'environnement suivante :
SQLSERVER_JDBC_DRIVER_FILE =.:Path_to_JDBC_driver/sqljdbc42.jar
Remarque: Si vous utilisez WebSphere® Application Server, vous devez également ajouter une propriété personnalisée qui pointe vers le pilote JDBC . Pour plus d'informations, voir Configuration de WebSphere Application Server. - Pour configurer les connexions de bases de données et créer des tables de bases de données, procédez comme suit :
- Si vous utilisez WebSphere Liberty, démarrez le serveur et passez à l'étape Exécution de la configuration à l'aide de la configuration personnalisée dans l'assistant de configuration.
- Si vous déployez WebSphere Application Server, voir Déploiement et démarrage de WebSphere Application Server, puis passez à l'étape Exécution de la configuration à l'aide de la configuration personnalisée dans l'assistant de configuration.
- Si vous préférez modifier manuellement le fichier teamserver.properties pour la connexion à la base de données et exécuter les commandes repotools pour créer des tables de base de données, voir Configuration manuelle d'une base de données SQL Server.
- Si vous effectuez une mise à niveau depuis une version antérieure, continuez à exécuter les scripts de mise à niveau appropriés pour migrer vos connexions de base de données existantes.
Résolution des incidents
Si la commande repotools ne fonctionne pas, consultez les fichiers journaux appropriés, qui se trouvent dans le répertoire JazzInstallDir/server .
De même, vérifiez que les conditions suivantes sont correctes :
- Le serveur SQL est configuré de manière à autoriser les connexions utilisant le protocole TCP/IP. Si nécessaire, redémarrez le service SQL.
- Le nom d'hôte de l'ordinateur SQL Server et le port apparaissent correctement dans les fichiers teamserver.properties. Pour les applications LQE et LDX, le fichier de propriétés est dbconnection.properties.
- Le nom de connexion, le mot de passe et le nom de la base de données apparaissent correctement dans les fichiers teamserver.properties.
- Un pare-feu ne vous empêche pas d'accéder au serveur SQL. Utilisez une commande Telnet pour vous connecter au serveur en utilisant le nom d'hôte et le port figurant dans le fichier teamserver.properties.
- L'utilisateur créé dispose des droits appropriés dans la base de données Jazz Team Server .
- Les variables d'environnement du pilote JDBC sont configurées correctement pour votre environnement.
Le serveur est conçu pour traiter un grand nombre de requêtes simultanées. Dans certains cas exceptionnels, des blocages peuvent se produire dans la base de données du répertoire, puisque des objets identiques ou similaires sont mis à niveau simultanément lors de transactions associées aux requêtes. Ceux-ci sont rares, mais normaux. Le système est conçu pour se protéger contre les interblocages, et l'intégrité des données est conservée ; il n'y a pas de perte de données. Occasionnellement, des blocages sont consignés par tâches, par exemple l'exécution du moteur de génération. En règle générale, la cause est détectée, et la tâche est réessayée. La génération ayant échoué peut être le résultat d'un blocage. Dans de très rares cas, une action d'utilisateur, par exemple le travail avec des éléments de travail ou avec un code source, est annulée pour résoudre un blocage. Dans ce cas, l'action de l'utilisateur échoue et un message d'erreur détaillé concernant le blocage est affiché à l'utilisateur. L'utilisateur peut ensuite réessayer l'action.
Tous les blocages sont consignés sur le serveur, fournissant des informations concernant la cause et les circonstances du blocage. L'entrée de journal comporte un texte similaire à l'entrée suivante:com.ibm.team.repository.common.RetryableDatabaseException: Serialization failure.
Si vous rencontrez des blocages fréquents, contactez le service de support du produit, ou consultez les dernières informations, mises à niveau ou techniques de contournement sur les forums sur jazz.net.
Configuration d'une base de données Jazz Authorization Server MS SQL Server
Jazz Authorization Server est configuré pour utiliser la base de données Apache Derby par défaut, mais vous pouvez utiliser une base de données d'entreprise telle que MS SQL Server dans votre environnement Jazz Authorization Server .
- Créez un fichier createOauthMSSQL.sql. Reportez-vous à l'exemple SQL suivant pour créer la base de données et les tables de Jazz Authorization Server. Vous pouvez utiliser un autre nom de base de données que oauth2db, mais vous devez utiliser le schéma OAuthDBSchema. Sachez également que ces valeurs sont des exemples qui doivent être modifiés en fonction de vos usages et de votre environnement.
-- Manually create DATABASE using object explorer and provide name as OAUTH2DB2; USE OAUTH2DB2; GO CREATE SCHEMA OAUTHDBSCHEMA; GO ---- CREATE TABLES ---- CREATE TABLE OAUTHDBSCHEMA.OAUTH20CACHE ( LOOKUPKEY VARCHAR(256) NOT NULL, UNIQUEID VARCHAR(128) NOT NULL, COMPONENTID VARCHAR(256) NOT NULL, TYPE VARCHAR(64) NOT NULL, SUBTYPE VARCHAR(64), CREATEDAT BIGINT, LIFETIME INT, EXPIRES BIGINT, TOKENSTRING NVARCHAR(MAX) NOT NULL, CLIENTID VARCHAR(64) NOT NULL, USERNAME VARCHAR(64) NOT NULL, SCOPE VARCHAR(512) NOT NULL, REDIRECTURI VARCHAR(2048), STATEID VARCHAR(64) NOT NULL, EXTENDEDFIELDS NVARCHAR(2048) NOT NULL DEFAULT '{}' ); GO CREATE TABLE OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG ( COMPONENTID VARCHAR(256) NOT NULL, CLIENTID VARCHAR(256) NOT NULL, CLIENTSECRET VARCHAR(256), DISPLAYNAME VARCHAR(256) NOT NULL, REDIRECTURI VARCHAR(2048), ENABLED INT, CLIENTMETADATA NVARCHAR(2048) NOT NULL DEFAULT '{}' ); GO CREATE TABLE OAUTHDBSCHEMA.OAUTH20CONSENTCACHE ( CLIENTID VARCHAR(256) NOT NULL, USERID VARCHAR(256), PROVIDERID VARCHAR(256) NOT NULL, SCOPE VARCHAR(1024) NOT NULL, EXPIRES BIGINT, EXTENDEDFIELDS NVARCHAR(2048) NOT NULL DEFAULT '{}' ); GO ---- ADD CONSTRAINTS ---- ALTER TABLE OAUTHDBSCHEMA.OAUTH20CACHE ADD CONSTRAINT PK_LOOKUPKEY PRIMARY KEY (LOOKUPKEY); GO ALTER TABLE OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG ADD CONSTRAINT PK_COMPIDCLIENTID PRIMARY KEY (COMPONENTID,CLIENTID); GO ---- CREATE INDEXES ---- CREATE INDEX OAUTH20CACHE_EXPIRES ON OAUTHDBSCHEMA.OAUTH20CACHE (EXPIRES ASC); GO ---- GRANT PRIVILEGES ---- ---- UNCOMMENT THE FOLLOWING IF YOU USE AN ACCOUNT OTHER THAN ADMINISTRATOR FOR DB ACCESS ---- -- Change dbuser to the account you want to use to access your database --GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CACHE TO dbuser; --GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CLIENTCONFIG TO dbuser; --GRANT ALL ON OAUTHDBSCHEMA.OAUTH20CONSENTCACHE TO dbuser; ---- END OF GRANT PRIVILIGES ---- - Ouvrez un outil de ligne de commande sqlcmd et exécutez le script suivant pour créer la base de données, les tables et les index, et pour affecter des privilèges :
createOauthMSSQL.sql GOLe script crée la base de données oauth2db, puis les tables dans le schéma OAuthDBSchema. Un pool de mémoire tampon d'une taille de page minimale de 8K est requis pour les tables. Le script SQL crée ce pool et les espaces table requis, mais cela n'est pas nécessaire si les pools de mémoire tampon utilisent déjà une taille de page de 8K ou supérieure.
- Après avoir créé les tables de base de données, vous devez configurer Jazz Authorization Server pour utiliser les tables. Accédez au répertoire d'installation de Jazz Authorization Server et ouvrez le fichier appConfig.xml pour l'éditer. Le chemin d'accès par défaut au fichier appConfig.xml sous Windows est C:\IBM\JazzAuthServer\wlp\usr\servers\jazzop, et /opt/IBM/JazzAuthServer/wlp/usr/servers/jazzop sous Linux.
- Mettez en commentaire la section suivante relative à la base de données Apache Derby :
<dataSource id="OAuthFvtDataSource" jndiName="jdbc/OAuth2DB"> <jdbcDriver libraryRef="DerbyLib" /> <properties.derby.embedded databaseName="asDB" createDatabase="create" /> </dataSource> <library id="DerbyLib"> <fileset dir="${shared.config.dir}/lib/global" includes="derby.jar" /> </library> - Ajoutez la section suivante pour configurer une base de données SQL. Personnalisez-la en fonction de votre serveur SQL spécifique :
<dataSource id="OAUTH2DBDS" jndiName="jdbc/OAUTH2DB"> <jdbcDriver libraryRef="MSJDBCLib"/> <properties.microsoft.sqlserver user="username" password="Password" databaseName="OAUTH2DB" serverName="SQLDBServer" portNumber="1433"/> </dataSource> <library id="MSJDBCLib"> <fileset dir="${shared.config.dir}/lib/global" id="sqljdbc42" includes="sqljdbc42.jar"/> </library>Vérifiez que les attributs suivants comportent les valeurs correctes :- Pour user, indiquez le nom de l'utilisateur MS SQL Server employé pour se connecter à la base de données.
- Pour password, utilisez le mot de passe de l'utilisateur MS SQL Server.
- Pour databaseName, utilisez le nom de la base de données que vous avez créée à l'étape précédente. Si vous avez utilisé l'exemple de fichier script, ce nom est OAUTH2DB.
- Pour portNumber, utilisez le numéro de port sur lequel l'instance MS SQL Server est exécutée. Le numéro de port par défaut est 1433.
- Pour serverName, entrez le nom d'hôte de MS SQL Server.
- Dans la section oauthProvider du fichier appConfig.xml, mettez à jour la propriété databaseStore afin de spécifier la source de données MS SQL Server plutôt que la source de données Apache Derby par défaut. La propriété databaseStore doit spécifier le nom de la source de données MS SQL Server, OAUTH2DBDS, dans le présent exemple :
<oauthProvider id="JazzOP" httpsRequired="true" autoAuthorize="true" customLoginURL="/jazzop/form/login" accessTokenLifetime="7201" authorizationGrantLifetime="604801"> <autoAuthorizeClient>client01</autoAuthorizeClient> <databaseStore dataSourceRef="OAUTH2DBDS" /> </oauthProvider> - Sauvegardez et fermez le fichier appConfig.xml.
- Copiez les pilotes MS SQL Server sqljdbc42.jar du serveur MS SQL Server dans le répertoire C:\IBM\JazzAuthServer\wlp\usr\shared\config\lib\global.