GERBELOTBARILLON.COM

Parce qu'il faut toujours un commencement...

CEGID Tips

RESTAURATION D’UNE BASE DE DONNEES

Restaurer une base de données sur SQL peut s’effectuer de deux façons :

L’intérêt de l’outil Admin SQL sur SSMS tient à la l’automatisation de certains processus apportée par CEGID : * Broker SQL * Niveau de compatibilité de la base * Création d’un utilisateur pour l’accès à la base depuis les applications CEGID (l’utilisateur qui restaure une base est généralement celui qui va avoir besoin de lancer des applications pour tester)

Puisque le serveur SQL sera généralement distinct des autres serveurs utilisés par CEGID, il faut prendre garde à ouvrir les bons ports dans le firewall. Par défaut SQL écoute sur le port 1433/tcp. Ce port est donc à autoriser.

Si plusieurs instances sont déclarées, alors il existe un mécanisme nommé sqlbrowser qui devra également être accessible depuis les autres serveurs du réseau sur le port 1434/tcp.

Sinon les instances nommées (autres que celle par défaut qui s’appelle MSSQLSERVER) peuvent également disposer d’un port TCP/IP figé (depuis le sgestionnaire de configuration SQL)

Config SQL 1
Config SQL 2

Dans cet exemple, l’instance nommée INSTANCE1 a été mise en écoute sur le port statique 20010. Ce port doit donc être ouvert sur le firewall pour permettre son accès.

Une fois la connexion réalisée par l’utilisateur de niveau SA de l’instance SQL requise (peut être sa ou n’importe lequel autre tant que l’utilisateur est déclaré sysadmin dans SQL)

SSMS SA

Pour restaurer une base de données il faudra avoir déclaré au préalable un utilisateur qui sera ensuite injecté dans cette base pour que CEGID puisse travailler avec depuis ses smartclients. La généralité est d’appeler cet utlisateur sous le nom cegiduser mais ce n’est pas obligatoire. Ce qui est obligatoire est que ce soit un utilisateur SQL et pas Windows, et surtout que la stratégie de gestion des mots de passe de windows ne soit pas appliquée à cet utilisateur.

CegidUser 1

Par défaut l’utilisateur qui sera manipulé par les smartclients de CEGID n’aura besoin d’être qu’un simple utilisateur public.

CegidUser 2

L’utilisateur apparaît alors dans la liste des Connexions autorisées

CegidUser 3

Il est maintenant possible de restaurer une base en se connectant sur le serveur avec le compte sa ou un compte de niveau sysadmin.

Restauration 1

Pour restaurer une base, se rendre dans l’onglet Restauration et remplir les éléments comme sur la capture d’écran.

Restauration 2

(de bas en haut)

Admin SQL 4

La base est créée et maintenance disponible pour usage dans CEGID.

L’onglet Outils permet de gérer les accès à cette base de données restaurée.

Admin SQL 5

En cliquant sur le bouton Login SQL, nous pouvons régénérer l’utilisateur cegid pour les smartclients.

Admin SQL 6

En cliquant sur Admin ERP nous pouvons recréer l’utilisateur directement dans la base de données permettant d’être autorisé à ouvrir cette base depuis un smartclient.

Admin SQL 7

CEGID DATABASE MAINTENANCE

Lorsqu’une montée de version est requise dans l’environnement CEGID, hormis la mise à jour des différents services et applications, le point le plus important est le traitement des bases de données par un processus nommé Database Maintenance.

La structure de ce processus repose sur un dossier spécifique c:database maintenance 13.0 dans lequel se trouvent deux dossiers et un fichier :

Structure du fichier CEGIDPGI.INI

[databasename]
        Driver= ; pas d'importance ici, résidu de la v9
        Server= ; nom du serveur SQL[\instance]
        Database=databasename ; nom de la base de données et doit être identique au nom se trouvant entre crochets []
        Options= ; concerne la notion d'Unicode qui est par défaut =0
        Group= ; pas d'importance
        User= ; chiffrement du nom de l'utilisateur dialoguant avec la base
        Password= ; mot de passe chiffré de l'utilisateur

Traitement des bases

Toutes les bases de données déclarées dans le fichier CEGIDPGI.INI seront traitées et il est fortement conseillé de bien avoir préparé son fichier avant de lancer la mise à jour.

Ce fichier peut être créé à la main ou bien généré depuis le service de configuration du métier et en exportant la configuration des bases de données.

Si une base ne doit pas être traitée par la mise à jour, il suffit de mettre un ‘;’ devant les crochets de sa déclaration.

[base_traitee]
        ...

        ;[base_ignoree]
        ...
        

Cas des bases avec référence (ou base commune)

Certaines bases peuvent être liées à une base mère qui déclare des références identiques pour un ensemble de bases, comme par exemple des utilisateurs, des tarifs, …

Lors de la montée de version, il faut s’assurer d’avoir l’intégralité des bases définies dans ce chaînage sinon aucune base ne sera traitée.

Quatre tables permettent de traiter ces bases de référence :

CEGID TROUBLESHOOTING

Bilan de santé

Le Bilan de santé est l’opération 0 à effectuer pour le troubleshooting CEGID. Il existe pour les 3 métiers et se lance par une interface web différente pour chaque métier :

http://localhost/cegidfinance/Health

http://localhost/cegidMTS/Health

http://localhost/cegidBRH/Health

Si le test est lancé depuis une autre machine, remplacer localhost par le nom ou l’ip du serveur possédant le service IIS pour CEGID.

Bilan de santé

Dans la figure précédente, un avertissement s’affiche sous la forme d’un pictogramme triangle orange. Généralement, un avertissement n’est pas bloquant sauf ici, lors de la première installation pour laquelle aucune configuration n’a été réalisée.

Bilan détaillé vide

Dans cette figure nous avons au moins 3 problèmes :

Il semble n’y avoir aucune autre erreur mais, en regardant de plus près, on peut déceler un problème avec les Worker Process. Même si le checkmark vert est affiché devant la ligne Worker Process, il n’y a aucune base d’affichée.

Autre exemple d’alert : une véritable liste d’erreurs est affichée sur le bilan de santé (avec la croix rouge symbole d’erreur à régler avant de pouvoir travailler)

Bilan 4
Bilan 5

Dans la capture précédente, beaucoup d’erreurs à résoudre pour disposer enfin d’un bilan opérationnel.

Erreur sur Broker SQL

Le Broker est une notion essentielle du fonctionnement des échanges entre IIS et SQL pour la gestion des files de messages. Il est obligatoire que le broker SQL soit actif.

/* Requête SQL à saisir en mode mono utilisateur ou sans personne de connecté car les processus en cours seront fermés automatiquement */
        
        alter database [dbname]
        set enable_broker with rollback immediate

Worker Process

Si les Worker Process sont en erreur sur le bilan de santé, il faut d’abord vérifier qu’ils sont bien démarrés, soit depuis l’interface de configuration du Worker Process, soit depuis la liste des services CEGID.

Dans la seconde option, les noms des services à démarrer sont :

Exemple pour Finance WP Finance

Il faut également vérifier que les files d’attente existent, se trouvent sur le bon serveur et disposent des bonnes autorisations d’accès.

MSMQ1
MSMQ2
MSMQ3

Si des problèmes persistent, il faut essayer d’exécuter manuellement les services de Worker Process pour obtenir potentiellement une erreur sur l’affichage de la console DOS. Chaque métier dispose de son environnement de Workers (sauf BRH qui n’en utilise pas)

# Pour Finance
        PS> cd \Program Files (x86)\Cegid\CegidBusiness\CegidFinance\WorkerProcess
        
        PS> MtsWorkerProcess -config:finance
        
        # Pour MTS
        PS> cd \Program Files (x86)\Cegid\CegidBusiness\CegidMTS\WorkerProcess
        
        PS> MtsWorkerProcess -config:trade
        # ou
        PS> MtsWorkerProcess -config:manufacturing

Erreurs possibles

SalesOrder en double dans le fichier config

On parle ici du fichier de configuration des Worker Process MTS présent dans le dossier **Files (x86)*

Editer le fichier MtsWorkerProcess.exe.win32.config, présent dans le métier MTS uniquement, à la recherche des lignes salesorder en double dans le fichier et supprimer les doublons.

Il existe un fichier FinanceWorkerProcess.exe.win32.config dans le dossier Finance mais il n’existe pas de ligne SalesOrder à ce niveau.

Autres sources de problèmes

MSI Installer

Lorsqu’une application CEGID doit être installée, et pour toutes les applications Windows qui vont s’inscrire dans Program Files ou Program Files (x86), l’utilisateur doit disposer du privilège administrateur.

L’installation de CEGID en a besoin uniquement lors de l’installation initiale de n’importe lequel des produits CEGID. A ce moment-là est installé un applicatif nommé CEGID Retail MSI Installer Service dont le rôle sera de réaliser l’élévation de privilège à la place de l’utilisateur, permettant donc d’installer CEGID même sur un poste où l’utilisateur dispose de privilèges invité.

Si l’erreur Impossible de déployer l’application survient il est probable que ce service ne soit pas présent ou bien que la tâche planifiée le concernant ne soit pas démarrée.

Impossible de télécharger une application

Il est parfois impossible de télécharger une application depuis le serveur IIS installé pour CEGID. C’était vrai avec d’anciennes versions, beaucoup moins maintenant.

C’était dû à une fonctionnalité non installée sur la partie .Net à savoir WCF (Windows Communication Foundations). Il faut juste s’assurer que ce service soit existant sur le serveur IIS et l’installer si ce n’est pas le cas.

Services WCF

RESTAURATION D’UNE BASE DE DONNEES PAR CLI

La ligne de commande reste une manière simple de restaurer des bases de données dans SQL Server

Sqlcmd -E -S server\instance -Q"RESTORE DATABASE [dbname] FROM DISK = 'D:\BACKUP\backup.bak'"

L’option -E correspond à Trusted connection

L’option -S doit être suivie du nom du serveur et de son instance si c’est autrechose que l’instance par défaut MSSQLSERVER.

Par défaut, la base est restaurée avec les fichiers .mdf et .ldf dans le dossier d’origine.

Cas particulier de CEGID

Arrêt des tâches planifiées

schtasks /END /TN “Legacy Licensing Server” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Reporting Service)” schtasks /END /TN “(Task Scheduler)” schtasks /END /TN “(Configuration Server)” schtasks /END /TN “(Configuration Server)”

Arrêt de IIS

net stop w3svc

Arrêt des Worker Process

net stop CegidProcessLauncher_Finance net stop CegidProcessLauncher_Trade net stop CegidProcessLauncher_Manufacturing

Gestion des bases de données

Voir le paragraphe précédent

Remettre en route les serviecs CEGID

Tâches planifiées

schtasks /RUN /TN “Legacy Licensing Server” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Reporting Service)” schtasks /RUN /TN “(Task Scheduler)” schtasks /RUN /TN “(Configuration Server)” schtasks /RUN /TN “(Configuration Server)”

IIS

net start w3svc

Worker Process

net start CegidProcessLauncher_Finance net start CegidProcessLauncher_Trade net start CegidProcessLauncher_Manufacturing