CATALOG INBASIC * COMPLETE CATALOG INBASIC.UV * COMPLETE CATALOG INPROGS * COMPLETE
F PARAMETRE C:\INTEGRIX\UVDB\SB+\FIN.PPP C:\INTEGRIX\UVDB\SB+\D_FIN.PPP
CLEAR-FILE FWI.CFG CLEAR-FILE FWI.HDL
Champ | Description | Exemple |
---|---|---|
Pool name | Nom donné au pool. Il ne peut y avoir deux serveur DB avec un nom de pool identique qui communique avec un même WIService sinon le WIService ne sait pas sur quel serveur DB transmettre la requête | |
Pool Actif | = Oui. Le WI.HDL.MNG gère ce pool = Non : Le WI.HDL.MNG gère ce pool = TEST : utilisé lorsque le développeur veut lancer une ligne WI.HDL en clair sans que le WI.HDL.MNG ne gère ce pool |
|
Account | Le compte UV sur lequel sera exécuté les requêtes HTTP dans le cas où le compte n'est pas spécifié dans l'application web. En principe, le compte UV est toujours spécifié dans l'application WEB. |
|
Durée de vide | La durée de vie maximum d'une ligne WI.HDL. Après cette durée de vie, le programme WI.HDL.MNG en démarre une nouvelle. Une ligne WI.HDL est redémarrée car après X temps d'utilisation, la vitesse d'exécution des requêtes peut diminuer |
|
Hostname | Le nom ou l'adresse IP du serveur sur lequel est installé le WIService | |
Niv | Le niveau de log : - 0 : Debug - 1 : Info - 2 : Warning - 3 : Error Plus le niveau de log est bas, plus il y aura des messages de logs dans le répertoire “log path”. Pour plus d'info |
|
log path | Le chemin du répertoire de log. En linux, il faut préfixer le chemin par “\” car une première ligne ne peut commencer par “/” dans une fenêtre SB |
|
Port | le numéro de port tco de communication avec le WIService | |
Min | le nombre de lignes WI.HDL à démarrer pour ce pool et pour ce hostname | |
Max | Utilisé en D3 et pas en UV/UD. | |
Min F | Utilisé en D3 et pas en UV/UD. | |
Max F | Utilisé en D3 et pas en UV/UD. | |
Noop | Utilisé en D3 et pas en UV/UD. | |
Check | Utilisé en D3 et pas en UV/UD. |
Q WEB WIBASIC
#UV.phantom service configuration file #synthax : - delimiter : ":" # - field 1 : "hostname -s" conc # - field 2 : sudo user # - field 3 : path of UV account # - field 4 : how many occurences of phantom # - field 5 : command (without verb PHANTOM) nomDeMonServeur:monUserLinux:/data/uvdb/WEB:1:PHANTOM WI.HDL.MNG
Cette procédure appelle un script powershell toutes les x minutes via les taches planifiées pour s'assurer que l'url “ping” retourne toujours un code http 200.
Pour mettre en place ca, voici les différentes étapes à suivre:
A faire par les devs
Créer l'application WI.PING dans le compte web (reprendre les informations de masterprod du compte web).
Ensuite il vous faut tester la requête ping qui est appelé par le watchdog.
Exemple :
https://Myserver/wiapp/ping?w3exec=WI.PING&w3hostname=XXXX
Exemple :
Import-module -Name Infodata-PSTools -Force $me = "WI.HDL.MNG" $err= 503 $task = @{ Name = "WI.HDL.MNG" Url = "https://{urlFixme}/wiapp/ping?w3hostname={w3hostnameFixme}&w3exec=WI.PING" Subject = "ALERT : WI.HDL.MNG STOPPED {NomClient}" Mailto = @("jcd@infodata.lu", "{AutreDestinataireClient}") } New-InPsWatchdogUrlScheduledTask @task $task = @{ source = "InPsWatchdog-$($me)" eventId = $err action = "START-PROCESS -FilePath ""$($env:UVHOME)\BIN\UV.exe"" -ArgumentList ""PHANTOM WI.HDL.MNG"" -workingDirectory ""$($env:UVDB)\WEB"" -RedirectStandardOutput ""{fixmePathRoot}\RuntimeLogs\infodata-pstools\InPsWatchdog-$($me)-$($err).action.log"" " } New-InPsEventLogScheduledTask @task
: Erreur sur Repetition not found. On a du ajouter la réétition manullemenet
Solution: Modifier manuellement les taches planifiées en allant dans le planificateur de tâches, aller sur la section “Bibliothèque du Planificateur de tâches” → “Integrix”. Ensuite séléctionner la première tâche InPsWatchdog-WI.HDL.MNG, aller en bas sur Onglet “Déclencheur” puis clique droit et propriété. Cocher “Répéter la tâche toutes les 15 mins pour une durée de Indéfiniment et cocher Arrêter toutes les tâches à l'issue de la durée de répétition et puis enregistrer.
3 taches permettent au service WI.HDL.MNG de fonctionner correctement.
Le répertoire de logs des tâches 2 et 3 se trouve sur le serveur Integrix habituellement dans le répertoire « C:\INTEGRIX\LOG_WEB\infodata-pstools » . ” C:\INTEGRIX” est la racine des applications intégrix“. \ En fonction de l'installation, le répertoire peut- se trouver autre part.
Si tout va bien, seul le fichier « InPsWatchdog-WI.HDL.MNG.log » a sa date de modifié toutes les 15 minutes. Ca veut dire que la tâche 2 se lance bien toutes les 15 minutes
La date et heure des fichiers « InPsWatchdog-WI.HDL.MNG-503 » correspondent à la dernière fois où il y a eu un problème. 17 :06 aujourd’hui lors de mon test
S’il y a un problème, Infodata recoit un premier mail d’alerte qui nous informe que le service ne fonctionne plus.
Exemple :
On reçoit ensuite un deuxième mail nous informant que le service a été démarré
Si ca se reproduit, on sera informé par mail dans les 15 minutes au plus tard et le service redémarrera automatiquement. On pourra tout de suite analyser la raison du problème. Raisons possibles :
None
L 14:21:06 27 JUL 2015 Starting WI.HANDLER on 18100 as jcd to www.infodata.lu:1505 working in pool XXX L 14:21:06 27 JUL 2015 Opening the socket L 14:21:06 27 JUL 2015 Connected, saying hello L 14:21:06 27 JUL 2015 Index : 3, WIService Version :INFODATA L 14:21:31 27 JUL 2015 ---------------------------------------------------- L 14:21:31 27 JUL 2015 REQUEST.URL : /dos L 14:21:31 27 JUL 2015 WIAPP FINAL = AC.XXX
Le mode erreur affichera uniquement les messages d'erreur
Voici ce que donne la même requête en fonction du niveau de log :
L 14:53:24 27 JUL 2015 ---------------------------------------------------- L 14:53:24 27 JUL 2015 WIAPP FINAL = AC.XXX L 14:53:24 27 JUL 2015 Values W3HOSTNAME= XXX W3EXEC= AC.XXX L 14:53:24 27 JUL 2015 CGI UPN= TP HTTP_USER_AGENT= Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36 ACCEPT-LANGUAGE= fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 ACCEPT-ENCODING= gzip, deflate, sdch X-FORWARDED-HOST= webserver.com REMOTE_ADDR= 192.168.0.79 X-FORWARDED-FOR= 192.168.0.79 SERVER_PROTOCOL= HTTP/1.0 CONNECTION= Keep-Alive ACCEPT= */* USER-AGENT= Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36 HOST= localhost:1508 REQUEST_METHOD= GET COOKIE= WITOKEN=451737541357; _ga=GA1.2.1196159395.1431519094; WITOKEN=451737541357 CACHE-CONTROL= no-cache QUERY_STRING= w3hostname=XXX&w3exec=AC.XXX HTTP_HOST= webserver.com X-FORWARDED-SERVER= webserver.com REMOTE_HOST= 192.168.0.79 CSP= active REQUEST_PATH= /dos L 14:53:24 27 JUL 2015 Want to execute >AC.XXX< L 14:53:24 27 JUL 2015 Trouve pas session en variable L 14:53:24 27 JUL 2015 Session ID =451737541357 L 14:53:24 27 JUL 2015 DIFF 1501200000-1501253436* L 14:53:24 27 JUL 2015 ANALYSE de url GET:dos L 14:53:24 27 JUL 2015 Check dos L 14:53:24 27 JUL 2015 Matches dos sur dos L 14:53:24 27 JUL 2015 URL OK L 14:53:24 27 JUL 2015 Routine finale WI.RFL L 14:53:24 27 JUL 2015 READ CATALOG DE WI.RFL L 14:53:24 27 JUL 2015 Call auth user WI.AUT.USR.XXX L 14:53:24 27 JUL 2015 Call auth application WI.AUT.APP.ACX L 14:53:24 27 JUL 2015 Try to execute >WI.RFL< L 14:53:24 27 JUL 2015 LOGTO AC.CCC L 14:53:24 27 JUL 2015 Executing WI.SUB WI.RFL L 14:53:24 27 JUL 2015 ---> Debut routine WI.RFL L 14:53:24 27 JUL 2015 ---> Fin routine (Duree de la request : 6 ms) L 14:53:24 27 JUL 2015 RETOUR WEB55 L 14:53:24 27 JUL 2015 Cookies out WITOKEN= 451737541357 L 14:53:24 27 JUL 2015 Header out CONTENT-TYPE= application/json; charset=UTF-8 X-WITOKEN= 451737541357 ACCESS-CONTROL-ALLOW-ORIGIN= * L 14:53:24 27 JUL 2015 Resultat[1,200] = [{"id":"AC.XXX","label":"XXX TEST WS"}]
L 14:31:37 27 JUL 2015 ---------------------------------------------------- L 14:31:37 27 JUL 2015 WIAPP FINAL = AC.XXX L 14:31:37 27 JUL 2015 Want to execute >AC.XXX< L 14:31:37 27 JUL 2015 Session ID =451737541357 L 14:31:37 27 JUL 2015 ANALYSE de url GET:dos L 14:31:37 27 JUL 2015 Matches dos sur dos L 14:31:37 27 JUL 2015 Routine finale WI.RFL L 14:31:37 27 JUL 2015 LOGTO AC.XXX L 14:31:37 27 JUL 2015 Executing WI.SUB WI.RFL L 14:31:37 27 JUL 2015 ---> Debut routine WI.RFL L 14:31:37 27 JUL 2015 ---> Fin routine (Duree de la request : 7 ms)
Aucun message sauf s'il y a une erreur.
L 15:04:51 27 JUL 2015 Error 404= [WI] Could not find any good url
L 15:05:17 27 JUL 2015 Objet RFL : AC_DOS L 15:05:17 27 JUL 2015 Conversion de 'CONTENT' au format OEM L 15:05:17 27 JUL 2015 METHODE : GET L 15:05:17 27 JUL 2015 Parametre : L 15:05:17 27 JUL 2015 1. : GET L 15:05:17 27 JUL 2015 2. : AC_DOS L 15:05:17 27 JUL 2015 subroutine de selection : AC.RFL.DOS.SEL L 15:05:17 27 JUL 2015 Apres subroutine process de selection Erreur : 1,No authorized account E 15:05:17 27 JUL 2015 Erreur : No authorized account
boundary_WI_MANAGER_2015_10_13.txt H LogId=WI_MANAGER_2015_10_13.txt 12:22:17 13 OCT 2015 D LOGNAME=jcd D USERID= D PHANTOM=1 D ACCOUNT=WEB55 /data/uvdbsb55/WEB55 L 12:22:17 13 OCT 2015 ----------------- STARTING WI.MANAGER '11963'----------------- L 12:22:17 13 OCT 2015 Active pool list : L 12:22:17 13 OCT 2015 - pool 'UNIV' L 12:22:17 13 OCT 2015 - pool 'JCD' L 12:22:17 13 OCT 2015 Pas de WI.HDL actif L 12:22:17 13 OCT 2015 Nettoyage du fichier FWI.HDL : SELECT FWI.HDL WITH HDL.ACT.SEL # "O" AND WITH HDL.STA.STP.DAT <= 17453 AND WITH HDL.STA.STP.TIM < 44477.4248 = 0 record(s) selected to SELECT list #0. L 12:22:17 13 OCT 2015 Starting PHANTOM WI.HDL... L 12:22:17 13 OCT 2015 1. PHANTOM WI.HDL -H www.infodata.lu -P 1505 -N UNIV L 12:22:17 13 OCT 2015 RESULT : Phantom process started with process ID 11966. L 12:22:17 13 OCT 2015 2. PHANTOM WI.HDL -H masterdev -P 1506 -N JCD L 12:22:17 13 OCT 2015 RESULT : Phantom process started with process ID 11967. L 12:22:17 13 OCT 2015 Nombre de WI.HDL a arreter : 0 L 12:30:28 13 OCT 2015 ----------------- STARTING WI.MANAGER '12072'----------------- L 12:30:28 13 OCT 2015 WI.MANAGER is already started
L 10:51:49 14 OCT 2015 ------------------------------------------------------- L 10:51:49 14 OCT 2015 WARNING!!! temps d'excution de la routine a dépassé le temps limite de 60 sec. HDL : 11966 L 10:51:49 14 OCT 2015 - Etat de la ligne WI.HDL '11966' lors du crash : - Date de démarrage : 10/13/2015 - 12:22:17 - Date du dernier traitement : 10/14/2015 - 10:50:22 - Application : AC.UNIV - Status : Executing Subroutine WI.RFL - Session : 119661745438951B - Headers (Nombre : 23) - ORIGIN : http://localhost:8081 - CONTENT-LENGTH : 385 - HTTP_USER_AGENT : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 - ACCEPT-LANGUAGE : en-US,en;q=0.8,fr;q=0.6 - X-WITOKEN : 119661745438951B - ACCEPT : */* - SERVER_PROTOCOL : HTTP/1.0 - X-FORWARDED-SERVER : univ.infodata.lu - REMOTE_ADDR : 12.34.56.78 - USER-AGENT : Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36 - X-SSO-USER-ID : bob.sponge@staging-abplatform.net - REQUEST_METHOD : POST - ACCEPT-ENCODING : gzip, deflate - X-FORWARDED-FOR : 12.34.56.78 - HOST : localhost:1508 - REFERER : http://localhost:8081/ - REQUEST_PATH : /dco - X-FORWARDED-HOST : univ.infodata.lu - CONTENT-TYPE : text/plain;charset=UTF-8 - CONNECTION : Keep-Alive - QUERY_STRING : w3hostname=UNIV&w3exec=AC.UNIV - HTTP_HOST : univ.infodata.lu - REMOTE_HOST : 12.34.56.78 - Params (Nombre : 9) - REQUEST_CONTENT : {"Id":"4154",suite du JSON} - W3HOSTNAME : UNIV - W3EXEC : AC.UNIV - APPID : AC.UNIV - CORS : 1 - AUTHUSER : WI.AUT.USR.UNIV - AUTHAPP : WI.AUT.APP.ACX - MAX_STS_EXEC : 60 - RFLOBJ : AC_DCO - Layer stack : PORT.STATUS PID 11966 LAYER.STACK There are currently 1 uniVerse sessions; 0 interactive, 1 phantom Pid.... User name. Printer Segment Last command processed.................... 11966 jcd 0xACEBD142 SELECT AC.UNIV.FAC.EXE WITH EXE.DB <= "03.05.15" AND WITH EXE.DF >= "03.05.15" [ AC.P.BDG.DCO.CPT @ 0x123A ] Layer type....... Program name.................... Address... BASIC run machine AC.P.BDG.DCO.CPT 0x0000123A BASIC run machine SB.PROCESS 0x00000924 BASIC run machine AC.P.RFL.DCO.UPD 0x00000926 BASIC run machine SB.PROCESS 0x00000924 BASIC run machine WI.RFL.SUB 0x00000C2C BASIC run machine WI.RFL 0x00000430 BASIC run machine WI.SUB 0x000000E4 Verb Command Language Execute BASIC run machine WI.HDL.CTR 0x0000126C BASIC run machine WI.HDL 0x000006F2 Verb Command Language --------------------------------------------------------------------- L 10:51:49 14 OCT 2015 Pole UNIV trouve L 10:51:49 14 OCT 2015 PHANTOM WI.HDL -H www.infodata.lu -P 1505 -N UNIV L 10:51:49 14 OCT 2015 Demande d'arret du WI.HDL : '11966' L 10:52:20 14 OCT 2015 Executing Subroutine WI.RFL , On patiente 30 secondes avant de forcer l'arrt L 10:52:50 14 OCT 2015 Forcer l'arret du WI.HDL : 'LOGOUT 11966' : L 10:53:19 14 OCT 2015 verifie si le PID existe toujours : 'PORT.STATUS PID 11966' L 10:53:19 14 OCT 2015 There are no uniVerse sessions that match the specified conditions. L 10:53:19 14 OCT 2015 Succes, PID suivant supprimé : '11966