Erreur démon AS/400 : "Error Hardis Daemon failed to start client thread "

Last modified by Julien EYMERY on 2015/06/29 15:25

Depuis la version 11 d'Adélia Studio avec la PTF F001 dans la partie AS/400 d'Adélia Studio il est possible d'avoir dans certains cas très limites l'erreur "Error Hardis Daemon failed to start client thread " (message visible via un DSPMSG QSYSOPR) et qui empêche d'aboutir toute les nouvelles demandes de connexion

Explication

Au moment de la création d'une connexion le démon crée un thread temporaire qui gère la partie authentification de la connexion.
Par contre si la boite de connexion adélia de saisie de profil et du mot de passe de connexion reste ouverte ce thread reste actif.
Le "Error Hardis Daemon failed to start client thread " correspond à une erreur système que rencontre le démon lorsqu'il n'arrive plus à créer de thread. Il faut savoir qu'au niveau système il y a une limite sur le nombre threads "actifs" que peut gérer simultanément un processus.

Ce cas pourrait arriver si jamais il s'accumulait sur le démon des demandes authentification bloquées (boite de connexion qui reste ouverte).

Analyse/Solution

Depuis la PTF F006 de la partie AS/400 d'Adélia Studio 11, on peut vérifier le nombre de threads d’authentification actifs en lançant la commande suivante depuis un poste Windows :

telnet <as400> <port> ==> par exemple : telnet monas400 910

puis dans telnet en lançant la commande (derrière le prompt "daemon>") :

authstats

Exemple d'affichage :

daemon> authstats
2 waiting threads (<1 min : 0, <15 min : 2, <60 min : 0), reaper disabled.
Thread id  Start time           Syncpoint  Tries Profile    Clt. pid   Clt. address                                  Clt. process
---------- -------------------- ---------- ----- ---------- ---------- --------------------------------------------- --------------------
49  2013/04/26 10:59:24   n/a        n/a   n/a        n/a        ::ffff:192.168.138.214                        command line
52  2013/04/26 11:00:55   1          1     HARDISPS12 8824       ::ffff:192.168.138.214 CopyS                  CopyS

Le thread 49 correspond à ma session telnet.
Le thread 52 correspond un thread d'authentification venant du processus 8824 de la machine client 192.168.138.214 dont le nom "CopyS". Cette demande d'authentification a commencé le 26/04/2013 à 11:00:55.

Pour quitter telnet il faut lancer la commande : quit

Remarque : Le telnet n'est plus possible si on a l'erreur "Error Hardis Daemon failed to start client thread ". Par contre s'il a été ouvert avant l'erreur on peut toujours exécuter la commande "authstats" même si l'erreur est arrivée (et qu'on est toujours la même session telnet).

Adélia (depuis la PTF F006 de la partie AS/400 d'Adélia Studio 11) permet aussi d'activer sur le démon as/400 un thread qui va automatiquement tuer les threads authentification qui sont actifs depuis un certain temps.
Pour activer ce mode "reaper" il faut créer dans la bibliothèque HA2SLIB, une dtaara AWSREAPER de type *CHAR et de longueur 3.
On y place sous forme de 3 chiffres la durée maxi autorisée (en minutes) pour la phase d'authentification.
Par exemple la valeur '015' indique que si la phase d'authentification dure plus de 15 minutes alors le thread d'authentification sera tué (l'utilisateur devra fermer la boite d'authentification et quitter son application pour refaire une tentative de connexion).
La dtaara AWSREAPER est prise en compte au démarrage du démon.

Remarque : les threads créés par un telnet ne sont pas gérés par le reaper (et donc ne seront pas tué par lui) mais ils sont limités à 10 maxi.

Articles connexes

Les articles connexes apparaissent ici en fonction des étiquettes que vous avez sélectionnées. Cliquez pour modifier la macro et ajouter ou modifier des étiquettes.