Lors de l'installation d'un produit récent, tel que GroupWise 7, en mise à jour d'un serveur déjà en production, il est généralement nécessaire de mettre à niveau NDS vers une version récente de eDirectory, comme 8.7.3 dans le cas de GroupWise 7.0, ce qui requiert un serveur NetWare maintenu au dernier niveau de patch requis.
En temps normal, l'installation de eDirectory identifie la présence du service pack à jour depuis la liste des produits installés, et tout se passe simplement. Malheureusement, il peut arriver que cette base soit corrompue et que l'installation refuse de poursuivre, considérant à tort que le service pack n'est pas installé.
La procédure suivante peut permettre d'y remédier
Qualifier le problème
Un serveur NetWare 6.x en production, notamment s'il sert
de serveur GroupWise, comporte habituellement une liste
de composants installés significative.
Cette liste est visible depuis l'écran
View/Configure/Remove Installed Products
de NWCONFIG.NLM
.
Si, malgré l'installation d'un service pack, aucune entrée SPACK n'apparaît dans cette liste, la base des produits est probablement corrompue.
Premier degré : PRODSYNC
En première approche, Novell fournit un utilitaire pour corriger ce problème, PRODSYNC.NLM (voir TID 10069964), inclus dans NetWare 5.1 SP3, 6.0 SP1 et suivants.
Cette étape peut suffire à réparer la liste dans certains cas: il faut donc l'essayer en premier ressort en suivant la procédure du TID 10069964.
Toutefois,
si la base des produits
est
corrompue, ce NLM échouera, et sera susceptible de se retrouver en situation
d'erreur irrécupérable, voire de causer un abend.
Il est en ce cas nécessaire d'intervenir directement sur la base des
produits.
Second degré: BUTIL
La base des produits,
SYS:SYSTEM/PRODUCTS.DAT
, est une
base Btrieve sous le contrôle du
MKDE. C'est un fichier binaire, sur lequel
il est possible d'intervenir avec un utilitaire standard,
BUTIL.NLM
Exporter la base en format texte
Pour confirmer si la base est ou non corrompue et donc
susceptible d'amélioration avec cette
procédure, la première étape
consiste à exporter une version texte de la base,
avec la sous-commande SAVE
:
BUTIL -SAVE SYS:SYSTEM\PRODUCTS.DAT SYS:SYSTEM\PRODUCTS.TXT
Ceci permet d'obtenir dans le fichier
PRODUCTS.TXT
une liste des produits
installés, tels que stockés dans la base,
sous une forme imprimable mais incomplète.
Une trace de corruption caractéristique est la
présence de lignes contenant des noms de produits
incorrects, dans lesquels une fin de ligne se retrouve
répétée sur la ligne d'un autre produit.
A ce stade, il est possible de tenter
une récupération, qui pourra réussir
partiellement, totalement... ou pas.
Récupérer les données de la base
Pour commencer, il faut exporter de la base binaire standard
les données que le moteur Btrieve est encore en
mesure d'y relire. C'est ce que permet la sous-commande
RECOVER
:
BUTIL -RECOVER SYS:SYSTEM\PRODUCTS.DAT SYS:SYSTEM\PRODUCTS.SAV
Ceci permet d'obtenir une version saine, quoique potentiellement incomplète, de la liste de produits, qui va pouvoir être transformée en une nouvelle liste de produits non corrompue.
Créer une base propre
A ce stade, il faut recréer une base
équivalente à la base existante mais
endommagée, mais avec un contenu vide. C'est le
rôle de la sous-commande CLONE
.
ATTENTION: cette commande utilise ses paramètres
dans l'ordre inverse des autres (destination en premier):
BUTIL -CLONE SYS:SYSTEM\PRODUCTS.NEW SYS:SYSTEM\PRODUCTS.DAT
A ce stade, la base PRODUCTS.NEW
est au
bon format, mais vide. Conserver par prudence l'ancienne
base PRODUCTS.DAT
, par exemple en la
renommant depuis une station connectée au serveur,
depuis le gestionnaire de fichiers de l'interface graphique,
ou tout autre moyen, et renommer
SYS:SYSTEM\PRODUCTS.NEW
en
SYS:SYSTEM\PRODUCTS.DAT
Restaurer les données récupérées
A ce stade, le serveur est donc doté d'une base
produits saine, mais vide. Il est donc possible de la
charger avec les données précédemment
sauvegardées, grâce à la
sous-commande LOAD
.
BUTIL -LOAD SYS:SYSTEM\PRODUCTS.SAV SYS:SYSTEM\PRODUCTS.DAT
C'est terminé: la base est de nouveau en ligne, et contient
la listes des produits installés qu'il a
été possible de récupérer
depuis l'ancien fichier. A ce stade,
PRODSYNC.NLM
fonctionne en principe
normalement, les produits apparaissent dans
NWCONFIG
, et il est possible
de procéder aux mises à jour
souhaitées.