Gestan CS - en mode Client/Serveur

Le mode Client/Serveur est un mode de fonctionnement particulier, qui présente les avantages suivants :

  • accélération des temps de réponse quand il y a un grand nombre d'utilisateurs simultanés sur la base et/ou volumétrie importante,
  • administration des bases facilitée
  • protection des données (vous pouvez placer les données sur une répertoire non-partagé, accessible seulement par le serveur HFSQL).
  • possibilité de connexion à distance, soit à travers le web, soit avec une application mobile.

Ce mode de fonctionnement, disponible depuis la version 13.0R de Gestan Entreprise, ne comporte aucun surcoût, le serveur HFSQL étant disponible gratuitement.

Le tutorial ci-dessous permet à toute personne disposant de compétences informatiques de base de réaliser par elle-même cette installation. Si tel n'était pas le cas, le support technique peut l'effectuer pour vous.

Dans le mode “classique”, le programme (Gestan.exe) discute directement avec la base de données (les fichiers xxxxx.FIC, .NDX et .MMO). La gestion des accès aux données est assurée exclusivement par le système d'exploitation (lectures, mises à jour, accès concurrents, caches, …), en l'occurrence Windows, et utilise le système de partage de données de Windows.

En mode Client/Serveur, le programme Gestan.exe discute avec un serveur logiciel de données (le serveur HFSQL), et c’est ce serveur qui interroge la base et renvoie les données demandées. Le partage de fichier Windows n'est plus utilisé : seul le serveur HFSQL se charge, sur le serveur, de l'accès aux données.

Techniquement, cela a deux avantages :

  • Le premier est de s’extraire de la gestion des accès réseau par Windows : les accès sont gérés par le serveur de données, en l’occurrence un serveur HFSQL. Vous n’avez plus à vous préoccuper de la mise à jour correcte des couches réseau de vos machines sous Windows : la cohérence des machines du parc est en effet une condition importante de bon fonctionnement d’un réseau sous Windows. En effet, si tous les postes ne sont pas à jour, le partage réseau de Windows peut avoir des défaillances et provoquer des problèmes de déphasage des index avec les données (dans ce cas, il suffit de tout simplement de réindexer les données).
  • Le second est d’accéder aux données via le protocole TCP/IP, et donc par l’intermédiaire de tout type de connexion, cable réseau, USB, WiFi ou Internet. Dans ce dernier cas, il permet par exemple d’avoir l’exécutable de Gestan (le programme gestan.exe) sur sa machine ou sa clé USB, et les données sur un serveur distant, pourvu qu’il soit accessible par Internet. Il permet aussi de communiquer avec les applications mobiles.

Même si ces informations datent un peu - Merci à Guillaume Bayle - PC Soft - elles demeurent intéressantes.

Sur quels points porter son attention pour une configuration correcte en mode Client/Serveur ? (certains points sont aussi valables pour l'optimisation des temps de réponse en mode classique en réseau)

la RAM

Le plus important est d'avoir une quantité de mémoire suffisante sur le serveur. En effet, lorsque la mémoire vient à manquer le système utilise un fichier d'échange sur disque (swap) qui fait chuter les performances, jusqu'à rendre les temps de réponse absolument horribles si le fichier d'échange mémoire de Windows est sur le même disque que les données du moteur HyperFileSQL Client/Serveur.

De façon générale, 4 Go de RAM sont un bon point de départ. C'est la mémoire standard sur les configurations serveur actuelles.

Pour une évaluation précise de la quantité de RAM nécessaire, elle peut être faite lors de tests “grandeur nature” de l'application, en s'appuyant sur les statistiques d'activité du serveur. Il suffit, dans le centre de contrôle HyperFileSQL, d'aller sur le volet “Logs et statistiques”, puis de : - indiquer la période de test, - cliquer sur “Afficher”, - utiliser le volet “Paramètres” de la fenêtre “Statistiques d'activité du serveur HyperFileSQL”, pour connaître la RAM utilisée, l'utilisation des caches…

Vous pouvez ainsi évaluer finement la RAM utilisée par une ou plusieurs connexions, afin d'évaluer la RAM nécessaire suivant le nombre de postes à connecter au serveur lors de la mise en production.

Il ne faut pas oublier de prendre en compte la RAM également nécessaire au système (1 Go minimum), et aux autres applications.

Attention, système et processeur ont une grande incidence sur la mémoire. En 32 bits, un processus ne peut théoriquement pas allouer plus de 2 Go (environ 1,6 Go au maximum dans la pratique). Si les estimations des besoins en RAM sont au-delà de 2 Go, il faut donc un processeur 64 bits.

La vitesse des disques

Lorsque le serveur a la bonne quantité de mémoire, vous êtes déjà assuré d'avoir de bon temps de réponse. Pour les améliorer, il faut des disques rapides : 7 400 tours 15 000 si possible. Pour des performances optimales, il est préférable d'opter pour :

  • un disque séparé pour les données et le système (surtout son fichier d'échange. Pour déplacer le swap : voir ici, ou .)
  • des disques immédiatement sur le PC (Les systèmes NAS sont de plus en plus diffusés. Ces machines sont conçues pour du backup, et non pour une utilisation comme serveur de fichier. Elles ne sont donc pas recommandées en terme de vitesse, mais nous avons remarqué que leurs performances s'améliorent régulièrement).
  • un système RAID en fonction du niveau de sécurité requis par les applications.

La qualité du processeur

Si la quantité de RAM n'est pas facteur limitant, la rapidité du processeur aura une incidence sur la réponse du serveur. Un processeur “Core 2 Duo” est généralement suffisant. Un “Quad core” ou plus sera à privilégier, si les applications exécutent de nombreux traitements sur le serveur (procédures stockées, triggers…)

La qualité du réseau

Utilisez des routeurs de bonne qualité. En particulier, les fonctions de routage de certaines boxes sont franchement mauvaises.

Le système d'exploitation

Le moteur HyperFileSQL Client/Serveur est disponible pour Windows en 32 et 64 bits, et pour Linux en 32 bits. Il est donc possible d'utiliser un serveur sous Windows ou sur Linux, le choix est à effectuer en fonction des habitudes et compétences des équipes en charge de l'administration.

Pour Windows toutes les versions peuvent convenir. Une version “serveur” sera cependant à privilégier pour les meilleures performances, et la sécurité du système.

Pour Linux les distributions les plus utilisées sont les suivantes : Debian 4.0 (Etch), OpenSuse 10.3, Ubuntu 7.10 et 8.04, Fedora 8 et 9, Mandriva 2008.

Voir aussi sur le blog de PCSOFT :

Tout d'abord, installez Gestan classiquement sur le serveur physique, cela nous aidera par la suite.


Etape 1 : installer le serveur HFSQL

Le serveur HFSQL (anciennement “Manta”) est disponible gratuitement sur le site de PCSoft, pour Windows ou pour Linux.

Vous y trouverez également un cluster avec équilibrage de charge, pour les cas d'utilisation avec de très nombreux utilisateurs.

Le programme s'installe par défaut dans C:\Program Files\PC SOFT\Serveur HyperFileSQL.

Etape 2 : paramétrer le serveur HFSQL

Les utilisateurs

Au moment de l'installation, vous pourrez déclarer des codes et des mots de passe pour les utilisateurs autorisés à se connecter et/ou administrer le serveur.

L'emplacement des données

Le champ Répertoire des bases de données de l'onglet Configuration précise l'endroit où sont stockées les bases de données.

Par défaut, le répertoire est %%COMMONAPPDATA%%\PC SOFT\ServeurHyperFileSQL_[nom du serveur]\BDD, c'est à dire, par exemple

  • C:\Documents and Settings\All Users\Application Data\Gestan pour une machine sous XP;
  • C:\ProgramData\PC SOFT\ServeurHyperFileSQL_gescloud1-srv1\BDD pour une machine sous windows 7, et dont le nom windows serait gescloud1-srv1,

Il est préférable de désigner un répertoire plus facile d'accès, par exemple C:\BDD-HFSQL, de manière notamment à rendre plus pratiques les sauvegardes.

TIP Pour arrêter les services Manta : Panneau de Configuration > Outils d'administration > Services, et arrêter les services Hyper File Server et MantaManager.

Etape 3 : Importation d'une base de données

Importons maintenant une base “Classique” dans le serveur HFSQL, via le bouton ci-dessous.

Le centre de contrôle vous demandera de préciser :

  • l'emplacement physique de la base à importer. Indiquez lui le répertoire qui contient les fichiers à importer (fichiers ACTION.FIC, ACTION.NDX, ACTION.MMO et suivants)
  • le nom de la base tel qu'il sera connu du serveur HFSQL. Indiquez lui le nom que vous donnerez à la base.
  • l'emplacement de l'analyse : indiquez lui le répertoire où se trouve le fichier Gestan.wdd. Vous le trouverez dans C:\Program Files (x86)\GESTAN si vous aviez installé Gestan normalement.

Etape 4 : Mise à jour des procédures stockées

Si vous voulez utiliser Gestan Mobile avec votre installation, il faut penser à mettre à jour les procédures stockées (nécessaire seulement pour Gestan V15)

Pour ce faire :

Cliquez sur la base qui vous intéresse, puis sur procédures stockées.

Puis cliquez sur Mettre à jour les collections

Sur l'écran qui s'affiche, sélectionnez l'analyse de Gestan, le fichier gestan.wdd qui est en général dans le répertoire d'installation de Gestan (l'analyse de Gestan est un fichier qui contient la description de la base de données).

Cochez la case Collections Gestan

A l'issue de la mise à jour, le serveur HFSQL affiche que la mise à jour a été effectuée.

Revenu sur l'écran principal, il faut cliquer sur Actualiser pour que les procédures stockées apparaissent sur l'écran, confirmant que tout s'est bien passé.

Etape 5 : Vérifier le pare-feu

La connexion HFSQL utilise normalement le port 4900, mais rien ne vous interdit d'utiliser un autre port. Et normalement le programme d'installation du serveur HFSQL l'ouvre automatiquement, mais si vous aviez à le vérifier, voici les éléments.

Le port de communication (normalement 4900) soit être ouvert en TCP, comme paramétré ci-dessous (vous pouvez restreindre l'exception à votre réseau interne)

Réglage pare-feu sous Windows 2012

Réglage pare-feu sous Windows 2008 R2

Pour vérifier que votre port 4900 est ouvert, vous pouvez utiliser telnet (telnet [IP] 4900).

Etape 6 : Vérifier la box

Si vous avez une box internet et un réseau local, il faut probablement ajouter une règle de redirection de ports.

Ci-dessous le réglage d'une livebox d'Orange pour un serveur HFSQL qui serait installé sur la machine 192.168.1.100

WARNING ! Ce paramétrage fonctionne avec une LibeBox V3, mais n'est plus fonctionnel avec une V4. Nous recherchons des solutions.

https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/198972-serveur-hfcs-inaccessible-suite-chgt-livebox-198991/read.awp

http://www.forum-orange.com/viewtopic.php?id=78043

Voir aussi :

Si vous souhaitez que les données Gestan de votre propre serveur puissent être accessibles depuis l'extérieur via Internet (le protocole HTTP), il faut ouvrir votre port 4900 en TCP. Depuis les machines client, il faudra indiquer l'adresse IP de votre serveur.

Il faudra ouvrir un port dans le firewall protégeant le serveur.

On pourra au choix :

  • Placer le serveur dans la DMZ, l'ensemble des ports du serveur sera alors visible depuis Internet. Si le serveur est protégé par son propre Firewall logiciel (ex celui du SP2 de Windows XP, IpTable sous Linux), il faut alors ouvrir le port du serveur HFSQL (qui est par défaut 4900).
  • Effectuer un forward de port sur son routeur-firewall. Il faut rajouter une règle dans le routeur qui spécifie que les connexions arrivant sur un port X depuis Internet seront transférées sur la machine hébergeant le serveur HFSQL sur le port 4900 (ou celui précisé dans HFConf.ini)

Si le client utilise un firewall, de la même manière, il faut que celui-ci permette aux applications de se connecter via le port utilisé vers l'extérieur

Etape 7 : Déclaration de la connexion sous Gestan

Il faut ensuite indiquer les paramètres de connexion à Gestan.

Pour ce faire, sous Gestan, utilisez le menu outils → Administration → Gestion multi-entreprise, puis le bouton Nouveau.

Décrivez la connexion, tel que détaillé, en mode LAN ou en mode WAN.

Et voilà !

Les temps de réponse, notamment en connexion C/S depuis Internet, dépendent essentiellement de la qualité de votre liaison.

De nombreux tests existent, ci-dessous le test d'un serveur de démonstration, la liaison est assurée de notre côté par une fibre à 100mbps montant et descendant.

Vous pouvez tester le débit de votre ligne chez DégroupTest : ce lien.

Pour faire la migration inverse, c'est à dire passer d'un Gestan Client/Serveur à un Gestan Classique, rien de plus simple !

Il suffit d'aller dans le répertoire des données Client/Serveur (voir ce lien), et de faire un copier des fichiers *.fic, *.ndx et *.mmo qui se trouvent dans ce répertoire (c'est à dire tous les fichiers), et de les coller dans un répertoire DATABASE local (par exemple C:\GESTAN\DATABASE).

Puis, dans Gestan, via le menu “Gestion multi entreprise”, vous déclarez une nouvelle connexion classique, en désignant ce répertoire local comme répertoire de base (ici, C:\GESTAN)

En cas de problème d'index, le centre de gestion HFSQL permet de reconstruire les index des fichiers.

Pour cela, sélectionnez la base dans laquelle se trouvent les fichiers à réindexer, puis faites un clic droit, et sélectionnez l'option “Optimiser et réparer”.

Sur l'écran qui s'ouvre, sélectionner l'option “Reconstruire les index”, et cliquez sur le bouton “Démarrer l'optimisation des fichiers”.

Il n'est pas mauvais d'effectuer, environ une fois par mois, l'option “Optimiser la vitesse des index”. Cette opération est susceptible d'améliorer les performances. Vous pouvez effectuer automatiquement cette optimisation via les éléments planifiés du centre de contrôle.

Pour mettre à jour les procédures stockées, cliquez sur le bouton ci-dessous.

On ne le répétera jamais assez : la stratégie de sauvegarde est la première des questions qui se pose au responsable informatique d'une société.

Le centre de contrôle dispose d'un outil qui permet d'automatiser les sauvegardes très facilement.

Pour cela :

  • cliquez sur la base à sauvegarder.
  • cliquez sur le bouton “Nouvelle sauvegarde”
  • déroulez les menus qui s'affichent. Vous pouvez vous dispenser de stocker les index
  • sur les options des scénarios de sauvegarde, vous pouvez choisir “sauvegarde mensuelle complète + sauvegarde quotidienne différentielle.

Message d'erreur à la génération d'une pièce

En mode Client/Serveur, vous pouvez obtenir ce message, lorsque vous générez une pièce à partir d'une autre (création d'une facture à partir d'un devis, par exemple) :

Les cardinalités côté clé étrangère (1,1) entre les rubriques <FACTURE.IDFACTURE> et <FACTLIGNE.IDFACTURE> ne sont pas respectées.

Explication technique

Les fichiers FACTURE et FACTURELIGNE sont aliasés : ce qui veut dire qu'à une seule description de fichier correspond plusieurs fichiers physiques. Or Windev, apparemment, n'assigne par correctement ces fichiers en mode client/serveur : au moment de la génération d'une pièce à partir d'une autre, l'assignation n'est pas encore effectuée au moment de l'ordre d'écriture, ce qui fait que lorsqu'il écrit par exemple une nouvelle ligne de devis, HyperFile va vérifier dans le fichier des factures (et non pas des devis) que le numéro de devis existe.

Il s'agit d'un défaut de Windev en client/serveur.

Ce problème survient quand il y a une mise à jour automatique de la base de données : les fichiers sont bien mis à jour automatiquement, mais la base n'est pas resynchronisée.

Résolution

Pour résoudre ce problème, il suffit d'effectuer à nouveau, manuellement, une synchronisation de la base, comme décrit ci-dessous. Cette procédure est très simple et fonctionne généralement dans tous les cas.

Sélectionnez ensuite l'analyse (Gestan.wdd, ici dans C:\Program Files\Gestan)

sélectionnez la base concernée, puis sélectionnez les liaisons à mettre à jour (généralement “aucune”)

puis sélectionnez les fichiers à mettre à jour (généralement “tous”)

Si la solution précédente ne fonctionne pas, vous pouvez résoudre le problème en réinstallant très proprement le serveur et les données.

  • Arrêtez le serveur, et déplacez les données de la base vers un répertoire lambda (les données de la base sont …dans le répertoire que vous avez spécifié au centre de contrôle HFSQL, ou alors, par défaut, dans %%COMMONAPPDATA%%\PC SOFT\ServeurHyperFileSQL_[nom du serveur]\BDD)
  • Assurez-vous que vous avez bien la dernière version du serveur. Pour cela consultez la page de téléchargement du site PCSoft citée plus haut.
  • Si ce n'est pas la dernière version, réinstallez le serveur HFSQL.
  • Installez la dernière version de Gestan (c'est important, car elle contient une version de l'analyse .wdd à jour)
  • Connectez vous au centre de contrôle HFSQL et arrêtez le serveur
  • Supprimez les répertoires Système du répertoire de la base et le répertoire du Serveur HFSQL(les répertoires __JNL, __JNLBackup, __System, __TRS, et le répertoire des bases qui se situent dans le même répertoire).
  • Puis importez à nouveau la base.

Contrôle de la résolution : Sur une base de test client/serveur, générez une facture à partir d'une autre pièce dont le n° de facture n'existe pas. Par ex, vous avez les factures de 1 à 10. Mettez vous sur la liste des devis, sélectionnez le devis 11 (ou supérieur), et cliquez sur “Gen facture”. Si tout se passe bien, c'est que la nouvelle installation est correcte.

TIP Nous avons observé de manière pragmatique qu'un reboot quotidien du serveur (pendant la nuit) améliorait considérablement ce point.


Vous pourriez laisser un commentaire si vous étiez connecté.
  • wiki/tech/mode_cs.txt
  • Dernière modification: 2019/06/30 19:24
  • par ics01