Business Object et SQL Anywhere
Le service Server Intelligence Agent ne démarre plus
Contexte
Il y a des jours comme ça … tout fonctionne puis au redémarrage du serveur d’un coup alors que tout devrait être identique à la configuration de la veille …. Business Object ne démarre plus !
Impossible d’accéder à la CMC, impossible de lancer Infoview, Impossible d’ouvrir Univers Designer … Bref BO n’est plus. Avec un seul message « serveur non trouvable ou arrêté FWM 01003 null »
Un coup d’oeil rapide sur les services nous permet de comprendre quel est la cause immédiate du problème ; Le service « Server Intelligence Agent » ne démarre pas. Ce service ne démarre pas car le service SQLANYs_BOE120SQLAW (BOE120SQLAW) dont il dépend ne démarre pas. Mais pourquoi ce service ne démarre-il pas alors qu’il démarrait la veille ? L’un des fichiers appelés par le service est-il corrompu ? Voyons d’abord qu’elle est la chaine d’éxecution du service en question. Mais auparavant vérifions quel est le nom du service
dbsvc -l
dbsvc -cm -g BOE120SQLAWBOE120SQLAW étant le service obtenu avec la première commande
dbsvc -t Network -s Automatic -as -sn "BOE120SQLAW" -y -w "BOE120SQLAW" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\Bin\dbsrv12.exe" -x tcpip(PORT=2638) -n BOE120SQLAW_admin "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\Bin\BOE120.db" "C:\Program Files (x86)\Business Objects\SQLAnyWhere12\Bin\BOE120_AUDIT.db"
Nous verrons plus loin que c'est cette chaine qui est à l'origine du problème ....
Au moment de son démarrage le service en défaut nous précise que le fichier est introuvable. La chaine obtenue ci-dessus fait appel à 3 fichiers . Deux fichiers de base de données (.db) ainsi qu’un fichier exécutable. A la vérification des fichiers je vois rapidement que l’exécutable n’a pas été modifié depuis des années (normal) alors que les fichiers de base de données ont évolué la veille (tout a fait logique aussi). J’en déduis (trop rapidement) que le fichiers de base de données doivent être corrompus
Afin d’en avoir la confirmation je vais tout de même essayer ouvrir les deux bases de données BOE120 et BOEA20_AUDIT.
L’outil dbisqlc me permet d’ouvrir la base de données. Un rapide
SELECT name FROM sysobjects WHERE type=’U’
me renvoie bien 32 lignes. La base ne semble donc pas corrompue. Il en est de même pour la base d’audit qui ne pose aucun problème d’accès.
Le problème ne vient donc visiblement pas des fichiers db, il reste donc le fichier dbsrv12.exe. Je décide donc de supprimer le service en question puis de recréer le service mais en local ceci peur etre fait en faisant appel à l’exécutable dbeng12.exe
Le test est concluant le nouveau service ainsi créé fonctionne parfaitement. Le fichier .db (en tout cas celui de BOE120) n’est absolument pas en cause … quelque chose ne va pas avec l’exécutable dbsrv12 mais quoi ….
Résolution
Problème résolu ! Il reste une énigme : Pourquoi la chaine d’exécution du service a-t-elle ainsi été altérée ?
Si vous avez la réponse je suis preneur