Web account

Compte web

Rôle

  • Le compte web est le compte Universe qui traite les requêtes http via ses lignes WI.HDL.
  • Le programme gérant les lignes WI.HDL 1) est le WI.HDL.MNG.
    Il permet de relancer automatiquement une ligne WI.HDL si celle-ci est planté ou si celle-ci à plus de x heures d'activité.
    Il se base sur la configuration des pools du compte WEB.
    Le WI.HDL.MNG démarre un nombre de PHANTOM WI.HDL qui est égale à la valeur de la colonne Min à condition que le pool soit actif.

Installation

  • 1. Installation du compte WEB via une révision SB. Prendre la révision de FWI.REV de MASTERDEV UV55 pour SB55 et FWI.REV de masterdev UB_V654 pour SB6
  • 2. CATALOG les IN
    CATALOG INBASIC *
    CATALOG INBASIC.UV *
    CATALOG INPROGS *
  • 3. Vérifier le voc de FIN.PPP. il doit avoir uniquement 3 attributs
    F PARAMETRE 
    C:\INTEGRIX\UVDB\SB+\FIN.PPP
    C:\INTEGRIX\UVDB\SB+\D_FIN.PPP
  • 4. Paramétrer le répertoire de travail des RFL.
    Aller Settings → Global Settings et dans “RFL working directory” mettre le chemin compte du compte WEB + “\WITMP\”. Ex : C:\INTEGRIX\UVDB\WEB\WITMP\
  • 5. Paramétrer l'envoi de mail.
    Aller Paramètres → Mail et mettre le stmp du client si possible ou celui de Infodata si pas.
    L'envoi de mail est utilisé par le WI manager lorsqu'il y a des erreurs.
  • 6. Aller dans le compte SB et vérifier que le user SB “SB.RP” existe. SI pas, il faut le config. (MDP: SB.RP)
  • 7. Aller dans le compte SB+ puis INTOOLS, faire un PD.H et vérifier que le record H.NULL existe. Sinon le créer: Description “ne fait rien”, Shell lines “ DISPLAY OUT OF SB+” et Execute/chain : C.
  • 8. S'il n'y a pas encore de WS pour le client faire, un clear-file de FWI.CFG et FWI.HDL
    CLEAR-FILE FWI.CFG
    CLEAR-FILE FWI.HDL
  • 10. Ajouter le programme WI.HDL.MNG au boot du serveur :

Configurer le(s) pool(s) qui communiqueront avec le wiservice

Champ Description Exemple
Pool name Nom donné au pool.
:W: 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.
Ancienne procédure

Comment faire pour qu'un compte puisse recevoir des requêtes WS

  • Créer le pointeur de WIBASIC dans le compte candidat.
    SE VOC WIBASIC
    Q
    WEB
    WIBASIC
  • CATALOG WIBASIC *
  • WI.UPD.ACC. Ce programme va créer tous les pointeurs/Pgm du compte WEB dans le compte candidat

Procédure pour lancer le WI.HDL.MNG après le démarrage du service universe

Windows

Linux

  1. Copier le fichier /etc/init.d/UV.phantoms
  2. Copier le fichier /etc/UV.phantoms.conf
  3. Copier divers scripts dans /infodata/scripts-live :
    1. common
    2. common.conf
    3. runas
  4. Configurer le fichier /etc/UV.phantoms.conf.
    Exemple :
    #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

Procédure pour vérifier que le WI.HDL.MNG fonctionne

Windows

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:

1. Créer l'application WI.PING

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 récupérer le path où se trouve le fichier web.config. Le chemin de base étant “C:\inetpub\wwwroot”.
En ouvrant ce dernier, il faudra ajouter la règle ci-dessous en adaptant l'url.

<rule name="WS ping" stopProcessing="true">
<match url="^ping?(.*)" ignoreCase="false" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
<action type="Rewrite" url="[[http://nomduserveur/wiapp/ping{R:1}?w3exec=WI.PING]]" />
</rule>" 


Il est intéressant ensuite de tester si l'URL en question fonctionne dans un navigateur.

2. Installation du package infodata-PSTools

3. Configuration infodata-PSTools

  • Configuration : Ce script ps1 vous demandera d'entrer une série de paramètres de base.
    Il faut le modifier manuellement avant de l'exécuter. (Exemple : modification des paramètres smtp).

4. Créer la tache planifiée watchdog

  • new-inpswatchdogurlscheduledtask : tache planifiée qui 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.

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 

FIXME : Erreur sur Repetition not found. On a du ajouter la réétition manullemenet

Si vous avez l'erreur suivante: La propriété « Repetition » est introuvable dans cet objet. Vérifiez qu’elle existe et qu’elle peut être définie. Au caractère C:\Program Files\WindowsPowerShell\Modules\Infodata-PSTools\1.230717.1237\onUVServer\WatchDogs\New-InPsWatchdogUrlScheduledTask.ps1:100 : 9 + $Trigger.Repetition = ( New-ScheduledTaskTrigger -Once -Repet … + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation : (:) [], RuntimeException + FullyQualifiedErrorId : PropertyAssignmentException

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.

5. Tester le bon fonctionnement

  • Lancer manuellement la tâche “InPsWatchdog-WI.HDL.MNG” et vérifier dans les logs si vous recevez bien un code 200.
    Ex :
  • Arrêter les lignes WI en allant dans le compte WEB.
  • Lancer l'url ping sur le navigateur chrome/firefox/edge du serveur et attendez de recevoir l'erreur “plus de handler disponible
  • Lancer manuellement la tâche “InPsWatchdog-WI.HDL.MNG” et vérifier
    • Dans les logs si vous recevez bien une erreur 503
    • Si l'url ping sur le navigateur chrome/firefox/edge du serveur répond “pong”. Si c'est le cas, alors c'est ok.

Documentation technique

Liste des tâches planifiées créées

3 taches permettent au service WI.HDL.MNG de fonctionner correctement.

  1. Tâche ”Universe coldstart after UV Started”.
    C’est cette tâche qui permet de démarrer le service qui permet au serveur WEB et au serveur Integrix de communiquer entre eux.
    Ce service démarre lorsque le service Universe démarre
  2. Tâche « InPsWatchdog-WI.HDL.MNG
    Cette tache exécute toutes les 15 minutes l’url « https://ws.nordparts.lu/wiapp/ping?w3exec=wi.ping »
    Si la réponse est une erreur 503 Plus de handler disponible », la tache 3 est exécuté par cette tache
  3. Tache “InPsWatchdog-WI.HDL.MNG-503”
    Cette tâche est exécutée par la tâche 2.
    Elle démarre le service qui permet au serveur WEB et au serveur Integrix de communiquer entre eux.

Logs liés aux taches planifiées

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

Mails d’alerte

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é

En résumé

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 :

  • Restart du serveur. (Tache 1 résout maintenant ce problème)
  • Restart du service universe (Tache 1 résout maintenant ce problème)
  • Kill des processus ci-dessous via les taches planifiés
  • Crash des processus
  • ….

Linux

None

Start/Stop/Status WI.HDL.MNG

  • Dans le compte WEB, il y a la possibilité de démarrer/d'arrêter/ de voir le status du WI.HDL.MNG

  • Le menu Start permet de démarrer le WI.HDL.MNG.
    S'il est déjà démarré, il ne redémarrera pas une nouvelle instance.
    Seul des lignes WI.HDL des Pool Actif (=O) seront démarrés.
Dans le fichier FWI.LOG.EXE/WI_MANAGER_AAAA_MM_JJ.txt, vous pourrez savoir ce que le WI.HDL.MNG a démarré
  • Le menu Stop va demander au WI.HDL.MNG de s'arrêter.
    Ce dernier demandera également à chaque ligne WI.HDL de s'arrêter.
  • Le menu status permet de savoir si le WI.HDL.MNG est démarré et donne le status de chaque ligne WI.HDL ainsi que d'autres informations.
  • Exemple de wi-status :
Status du WI.HDL.MNG Ecran
Ligne 1 WI.HDL.MNG est démarré ou non WI.HDL.MNG IS RUNNING
WI.HDL.MNG ISN'T RUNNING
Ligne 2 Si le WI.HDL.MNG est en cours d'arret WI.HDL.MNG IS SHUTTING DOWN
Detail ligne WI.HDL
Nom Description Exemple
PID le pid de la ligne WI.HDL
Si le pid est un nombre à plus de 3 chiffres, alors la ligne a été lancé en phantom
sinon la ligne WI.HDL a été lancé en clair
11502
Pool (Actif) Nom du pool(fichier FWI.CFG) et si la ligne est active ou non
Actif : Oui, Non ou test.
Un Pool “Test” n'est pas géré par le WI.HDL.MNG.
Ca permet aux développeurs de tester leurs WS
UNIVERSE (Oui)
Hostname Le nom ou l'adresse IP du serveur où il y a le WIservice 192.160.0.2
Port le port de communication entre la ligne WI.HDL et le WIService 1505
Started la date et heure de démarrage de ligne WI.HDL 13/10/2015 16:59:50
Last status la date et heure de la dernière activité de la ligne WI.HDL,
ce qui correspond soit :
- au dernier appel WS
- au date time du dernier heathbeat de la ligne WI.HDL qui se fait toutes les 20 secondes
14/10/2015 08:33:40
Status le status de la ligne WI.HDL. Ca permet de savoir ce qu'elle est entrain de faire.
Last Application le nom de la dernière WIAPP (FWI.APP) qui a été appelé AC.UNIV
listes des status d'une ligne WI.HDL
  1. Starting : La ligne WI.HDL est en cours de démarrage. C'est le premier statut d'une ligne WI.HDL
    Vous ne devrez jamais voir ce statut
  2. Socket : La ligne WI.HDL essaye de se connecter au WIService
    si ce status persiste plus de 5 secondes, c'est que la ligne WI.HDL n'arrive pas à se connecter au WIService
  3. Identification : Après avoir recu une réponse du WIService signalant qu'il a bien recu la demande de connexion, la ligne WI.HDL s'identifie auprès du WIService pour signaler qui elle est (envoie son nom de pool)
  4. Waiting request : la ligne WI.HDL est libre et fonctionnelle. Elle est prête à recevoir une nouvelle requête.
    C'est le statut qui sera le plus souvent visible
  5. Retry connection : Si la ligne WI.HDL a perdu la connexion avec le WIService.
  6. Something to do : C'est le premier statut lorsque la ligne WI.HDL a recu une requête. Ce statut est mis avant que la ligne WI.HDL commence à analyser la requête recue et donc avant d'avoir exécuté la routine de traitement
  7. Verifying application : Status mis lorsque le WI.HDL va vérifier la requête recue, si le compte distant est correctement configuré et l'authentification application et/ou utilisateur
  8. Executing Subroutine XXX : Status lorsqu'une routine est appelé et qu'elle n'a pas encore rendu la main.
    Si ce status persiste plus de X temps, ca peut signifier que la routine a planté.
  9. Responding : La routine appelée a terminée son exécution et la ligne WI.HDL va envoyer le résultat au wiservice.
  10. Sending Error : Envoie d'un message d'erreur au wiservice. Code http différent de 200
  11. File : Open connexion en mode fichier et pas socket. Le mode fichier a été mis au frigo. Ce status n'est donc pas utilisé.
  12. Shutdown : la ligne WI.HDL est arrêtée. Ca se produit lorsqu'on passe le status actif(HDL.ACT) à “N” de la ligne WI.HDL.
    Le WI.HDL.MNG peut arrêter une ligne WI.HDL tous les x temps pour en démarrer une nouvelle

WI.HDL.MNG dans UV.COLDSTART

Vérification installation

Log

  • Pour connaitre l'activité des lignes WI et pour retrouver un traitement effectué d'un WS, il existe dans le compte WEB la possibilité de loguer son activité
  • Il existe plusieurs niveaux de logs. Plus le niveau de log est bas, plus le nombre de messages de logs sera important.
    Voici les 4 niveaux de logs
    • 0 - Debug
    • 1 - Info
    • 2 - Warning
    • 3 - Error
  • Ce niveau de log est configuré à plusieurs endroits :
    • Par pools (FWI.CFG).
    • Par application (FWI.APP).
    • Par RFL (FWI.RFL.OBJ)
  • L'activation d'un log va provoquer l'écriture du log dans un fichier OS.
    Le nom du fichier log aura la structure ssuivante
    • Pool : “POOL_”:{poolId}:“_”:{YYYYMMDD}:“_”:{pid}:”.txt“.
      Exemple : POOL_XXX_20150727_9676.txt
    • Application : “APP_”:{appId}:“_”:{YYYYMMDD}:“_”:{pid}:”.txt“
      Exemple : APP_AC.XXX_20150727_9676.txt
    • RFL : “RFL_”:{rflid}:“_”:{YYYYMMDD}:“_”:{pid}:”.txt“.
      Exemple : RFL_AC_DOS_20150727_9676.txt

Log des pools

Exemple

Mode Info
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		
Mode Erreur

Le mode erreur affichera uniquement les messages d'erreur

Log applications

Exemple

Voici ce que donne la même requête en fonction du niveau de log :

Mode Debug
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"}]	

Mode Info
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)
Mode Error

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 	

Log RFL

Mode Debug
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	

Log WI.HDL.MNG

  • Le WI.HDL.MNG logue son activité.
    Il prévient quand il démarre ou lorsqu'il arrête une ligne WI.HDL.
    Si une ligne WI.HDL refuse de s'arrêter parce qu'une routine ne rend pas la main, le wi.hdl.mng loguera toutes les commandes qu'il exécutera pour essayer d'arreter la ligne et il loguera la pile des appels de la routine bloquéé (PORT.STATUS PID XXX LAYER.STACK)

Exemple de log

  • Start du WI.HDL.MNG
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	
  • Log d'une ligne WI.HDL bloqué.
    On peut voir que :
    1. le WI.HDL.MNG a détecté qu''il n'a pas recu de réponse alors que le temps max d'exécution est de 60 secondes.
    2. le WI.HDL.MNG a logué la pile d'appel des programmes ce qui permet de savoir quel programme bloque.
    3. le WI.HDL.MNG a forcé l'arrêt du WI.HDL
L	10:51:49 14 OCT 2015	-------------------------------------------------------	
L	10:51:49 14 OCT 2015	WARNING!!! temps d'ex‚cution 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'arrˆt	
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	
1)
Le WI.HDL est une ligne qui permet le traitement en basic d'une requête HTTP
public/wi/installation/webaccount.txt · Dernière modification: 19/09/2023 09:08 par Jean Christophe Dewalque
 
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki