Problème

Des transactions lentes ou des blocages apparents lors des opérations multi-utilisateurs dans Maximo peuvent survenir si le verrouillage des pages n’est pas désactivé sur les tables et index.

Cause
  • Lors de l’installation ou de la mise à niveau de Maximo (version 6 ou supérieure) sur SQL Server, le verrouillage des pages n’est pas désactivé par défaut.
  • Le verrouillage des pages peut provoquer des problèmes de performances dans un environnement multi-utilisateurs.
Environnement
  • Base de données : Microsoft SQL Server.
  • Application : IBM Maximo.

Solution
Étape 1 : Connectez-vous à la base de données Maximo
  1. Utilisez SQL Server Management Studio (SSMS) pour vous connecter à la base de données Maximo.
Étape 2 : Génération des commandes pour désactiver le verrouillage des pages
  1. Redirigez la sortie de la requête vers un fichier :
    • Dans SSMS, accédez à Query > Results To > Results to File.
  2. Exécutez la requête suivante : SELECT ‘sp_indexoption  »’ + tablename +  »’,  »AllowPageLocks »,  »false » go’ FROM maxtable ORDER BY tablename;
    • Cette requête génère une série de commandes sp_indexoption pour chaque table dans la base de données.
Étape 3 : Modifiez le fichier généré
  1. Ouvrez le fichier généré :
    • Accédez à File > Open dans SSMS pour ouvrir le fichier.
  2. Nettoyez le fichier :
    • Supprimez les lignes d’en-tête et les lignes de comptage des lignes (row count) au début et à la fin du fichier.
  3. Exemple d’une commande générée :
    • La commande pour désactiver le verrouillage des pages pour une table ressemble à ceci : sp_indexoption ‘tablename’, ‘AllowPageLocks’, ‘false’ go
Étape 4 : Exécutez les commandes générées
  1. Sélectionnez toutes les commandes :
    • Dans SSMS, accédez à Edit > Select All.
  2. Exécutez les commandes :
    • Appuyez sur F5 pour exécuter toutes les commandes dans le fichier.
Résultat attendu
  • Le verrouillage des pages est désactivé pour toutes les tables et leurs index dans la base de données Maximo.
  • Une fois désactivé, le verrouillage des pages restera désactivé.
  • Si la configuration de la base de données Maximo (Maximo Database Configuration) recrée une table ou un index, elle maintiendra le verrouillage des pages désactivé.
Remarque importante
  • Cette opération doit être effectuée dans un environnement de test avant une mise en œuvre en production.
  • Assurez-vous que vous disposez d’une sauvegarde récente de la base de données avant d’effectuer ces modifications.
Bonus : Automatisation via Script SQL

Si vous gérez régulièrement plusieurs bases de données Maximo, vous pouvez automatiser ce processus à l’aide d’un script SQL ou d’un script PowerShell pour générer et exécuter les commandes sp_indexoption. N’hésitez pas à demander de l’aide pour créer un tel script.