Le WIService est un programme Python assurant le relais d'une requête http entre une session d'un logiciel de serveur services Web (IIS,http,…) et une session WI.HDL 1)
Si serveur suze, installer module Pbr
from collections import MutableMapping
par
import sys if sys.version_info.major == 3 and sys.version_info.minor >= 10: from collections.abc import MutableMapping else: from collections import MutableMapping
Raison : The attribute MutableMapping from the module collections got moved into collections.abc in python3.10.
WIService 0:off 1:off 2:on 3:on 4:on 5:on 6:off
si “3:on” affiche, c'est bon, ce sera demarre automatiquement au boot
------------- - service WIService start - service WIService stop - service WIService status (Des)activation au boot : ------------------------- - chkconfig WIService [off|on]
[Unit] Description=WIservice After=httpd.service # start/stop WIservice # PartOf=httpd.service [Service] Type=simple ExecStart=/opt/WIService/wiservice.py -w 1505 -m 120 --nolog --start #ExecStart=/opt/WIService/wiservice.py -w 1505 -m 120 --start -d -D ExecStop=/opt/WIService/wiservice.py --stop KillMode=process TimeoutStopSec=10 Restart=always RestartSec=10 #StandardOutput=/var/log/apache2/domlogs/infodata/wiapp.log #StandardError=/var/log/apache2/domlogs/infodata/wiapp.log StandardOutput=syslog StandardError=syslog SyslogIdentifier=WIservice [Install] WantedBy=multi-user.target
</code>
Doc pour créer service en utilisant upstart : http://upstart.ubuntu.com/getting-started.html. Le fichier service du wiservice se trouve ici : unix/wiservice-ubuntu.conf
WIService 0:off 1:off 2:on 3:on 4:on 5:on 6:off si "3:on" affiche, c'est bon, ce sera demarre automatiquement au boot
Code du fichier ini | Options service linux | Description |
---|---|---|
DEFAULT_PORT | -l ou –listening | Numero de port sur lequel le serveur ecoutera les requetes HTTP afin de les transmettre a la DB Defaut = 1508 |
DEFAULT_WI | -w ou –wi | Numero de port sur lequel le serveur ecoutera les connexions venant de la DB |
DEFAULT_TIMEOUT | -t ou –timeout | Durée d'attente du serveur pour avoir un handler de disponible. Si le delai est dépassé, la requête n'aboutira pas et le WIService renvoie un message d'erreur (plus de handler disponible). Défaut = 5 secondes. |
DEFAULT_HEARTBEAT | -b ou –heartbeat | Durée de la période d’inactivité d'un handler du service. Apres cette durée, un message est envoie pour ralonger ce temps, sinon la connexion risque d’être perdue. Défaut = 20 secondes |
DEFAULT_MAXEXEC | -m ou –maxexecute | Durée maximum d’exécution des requêtes vers la DB. Si le traitement dépasse le délai, une erreur avec code 408 sera renvoyée au navigateur. Defaut = 60 secondes |
DEBUG | -d ou –debug | Mode debug. Si true, Affiche plus de message de ce qui se passe. Défaut = False |
DEBUG_DEV | -D | Mode développeur. Laisser toujours à False, sauf si vous voulez débuguer le programme WIService. Défaut = False |
NO_LOG | –nolog | Ne vas rien loguer. Défaut = False |
LOG_PATH_FILE | C'est le chemin complet vers le fichier log y compris le nom du fichier log. Mettre YYYYMMDD si vous souhaitez avoir un fichier log par jour. Si paramètre vide ou manquant, alors un fichier wiservice.log et wiservice_debug.log seront créé dans le répertoire du WIService C:\mon_repertoire_log\wiservice_YYYYMMDD.log |
#------------------------------------------------------ # Fichier de config du service windows "WIService" # si une valeur n'est pas mentionnée ou vide, ce sera # la valeur par défaut qui sera mentionnée #------------------------------------------------------ # DEFAULT_PORT = Numero de port sur lequel le serveur ecoutera les # requetes HTTP afin de les transmettre a la DB # Defaut = 1508 # DEFAULT_WI = Numero de port sur lequel le serveur ecoutera les connexions venant de la DB # Defaut = 1505 # DEFAULT_TIMEOUT = Duree d'attente du serveur pour avoir un handler de disponible. # Si le delai est depasse, la requete n'aboutira pas, et on renvoit un message d'erreur. # Defaut = 5 secondes. # Message d'erreur = plus de handler disponible # DEFAULT_HEARTBEAT = Duree de la periode d'inactivite d'un handler du service. # Apres cette duree, un message est envoye pour ralonger ce temps, sinon la connexion risque d'etre perdue # Defaut = 20 secondes # DEFAULT_MAXEXEC = Duree maximum d'execution des requetes vers la DB. # Si le traitement depasse le delai, une erreur sera renvoyee au navigateur. # Defaut = 60 secondes # DEBUG = Mode debug. Si true, Affiche plus de message de ce qui se passe # Defaut = False # DEBUG_DEV = Mode developpeur. Laisser toujours à False, sauf si vous voulez debuguer le programme WIService # Defaut = False # NO_LOG = True si vous ne voulez pas que le WIservice logue son activité # Defaut = False # LOG_PATH_FILE = C'est le chemin complet vers le fichier log y compris le nom du fichier log. # Mettre YYYYMMDD si vous souhaitez avoir un fichier log par jour # Si paramètre vide ou manquant, alors un fichier wiservice.log et wiservice_debug.log seront créé dans le répertoire du WIService #------------------------------------------------------ # Retirer le # devant la variable pour activer un paramètre #------------------------------------------------------ #DEFAULT_PORT = 1508 #DEFAULT_WI = 1505 #DEFAULT_TIMEOUT = 5 #DEFAULT_HEARTBEAT = 20 #DEFAULT_MAXEXEC = 60 #DEBUG = False #DEBUG_DEV = False #NO_LOG = False #LOG_PATH_FILE = C:\mon_repertoire_log\wiservice_YYYYMMDD.log
Voici les deux messages d'erreurs que vous pouvez avoir et qui signifie que le wiservice est correctement installé.
Vous devez avoir comme résultat l'erreur suivante :
Trying to start server on localhost:1508 , wiservice listening on 1505 [Fri Jun 19 15:08:21 2015] ? GET /wiapp : 500 - Erreur de traitement : Pool default inconnu
Si la communication avec le compte WEB est déjà fonctionnel, vous n'aurez pas le message d'erreur “Pool default inconnu” mais l'erreur Invalid application id
Dans le répertoire du WIService, il y a le fichier log wiservice.log qui reprend la liste des requêtes traités du jour.
Dans une ligne du fichier log, nous retrouverons :
[Fri Jun 19 11:40:35 2015] 192.168.0.82->masterdev GET /dos/AC.TEST&w3hostname=TP&w3exec=ac.ctr : 200 - application/json; charset=UTF-8 , duree: 0.156986 sec [Fri Jun 19 11:45:22 2015] 192.168.0.97->masterdev GET /dco/3?&w3hostname=TP&w3exec=ac.ctr : 404 - Enregistrement 3 inexistant ! [Fri Jun 19 12:09:41 2015] 192.168.0.79->masterdev GET /gcf?&w3hostname=TP&w3exec=ac.ctr : 504 - attente trop longue : 0.140280 sec [Fri Jun 19 13:32:22 2015] 192.168.0.82->masterdev POST /dap?&w3hostname=TP&w3exec=ac.ctr : 500 - Erreur de traitement : Erreur lors de la communication avec le Handler Erreur lecture chr(0)
Date | Adresse IP client | Nom serveur WEB | Methode | Url | Statut | Content-type | Type de message | Durée |
---|---|---|---|---|---|---|---|---|
[Fri Jun 19 11:40:35 2015] | 192.168.0.82 | masterdev | GET | /dos/AC.TEST?&w3hostname=TP&w3exec=ac.ctr | 200 | application/json; charset=UTF8 | duree : | 0.156986 sec |
[Fri Jun 19 11:45:22 2015] | 192.168.0.97 | masterdev | GET | /dco/3?&w3hostname=TP&w3exec=ac.ctr | 404 | Erreur de traitement | Enregistrement 3 inexistant ! | |
[Fri Jun 19 12:09:41 2015] | 192.168.0.79 | masterdev | GET | gcf?&w3hostname=TP&w3exec=ac.ctr | 504 | attente trop longue | 0.140280 sec | |
[Fri Jun 19 13:32:22 2015] | 192.168.0.82 | masterdev | POST | /dap?&w3hostname=TP&w3exec=ac.ctr | 500 | Erreur de traitement | Erreur lors de la communication avec le Handler Erreur lecture chr(0) |