Qfarm Archive

0

Retour “Qfarm /load” vide…. Le retour

Nous revoilà avec un problème de commande Qfarm /Load (voir notre billet “Retour «Qfarm /load  vide“) qui ne retourne aucune charge serveur dans l’une de nos fermes (XA65 R01 US Sp1).

Comme le Qfarm /load ne retournait rien, nous sommes passés par un Get-XaServerLoad qui nous a retourné l’erreur :

 

Get-XaServerLoad : Exception has been trown by the target of an invocation

 

QfarmLoad01On comprend que l’un de nos serveurs XenApp ne répond pas correctement au Get-XaServerLoad


Afin de trouver le serveur en question on lance un  “
Get-XAserver|%{Get-XAServerLoad $_.Servername}“, Ce qui nous a permis de trouver le serveur qui ne répondait pas au Get-XAServerLoad.

On test un Qfarm /load Serveur1 (remplacez Server1 par votre serveur) qui nous répond que l’IMA n’est pas disponible (tout du moins pour cette requête)

 

QfarmLoad02


Une fois sur le serveur en question nous rencontrons l’event Event ID 3609
“Failed to load plugin C:\Program Files (x86)\Citrix\System32\Citrix\IMA\SubSystems\ImaAppSs.dll with error IMA_RESULT_WRITE_TO_LOG_FAILED” qui nous amène à la CTX134504.

La lecture de la  CTX134504 met en évidence que le problème vient du CitrixLogServer COM+ qui ne repond pas.

Du coup direction le Service des composants (comexp.msc), en développant Console Root-Component Services-Computer-COM+Application nous tombons sur l’erreur :


An error occurred while processing the last operation. Error code 8007042C – The dependency service or group failed to start

 

QfarmLoad03Ok ça risque pas de fonctionner la 🙂

 

En regardant les dépendances du Service Application système COM+ ( COM+ System Application) nous constatons que le service Système d’événement COM+ (System Event Notification Service ) était désactivé. Une fois le service service Système d’événement COM+ activé et démarré le Qfarm /load retournait bien les valeurs de charge de tous les serveurs membre de la ferme.

WTF

1

Retour “qfarm /load” vide

Nous allons dans ce billet vous expliquer comment un serveur “pas entièrement supprimé d’une ferme XenApp” peut engendrer un effet de bord inattendu (mais logique).

Il y a quelques temps nous avons rencontré un problème de retour avec la commande qfarm /load, en effet un qfarm /load ne retournait aucun serveur (un qfarm retournait bien la liste des serveurs de la ferme en question).
Le premier réflexe  fut de tester la cmdlet Get-XAServerLoad, qui elle nous retournait l’erreur “Get-XaServerLoad : Exception has been thrown by the target of an invocation“.

QfarmError1

Du coup direction CDFControl afin de faire une trace durant l’exécution d’un qfarm /load.

QfarmError2Intéressant cette Uid 😉 .

En googlelant l’erreur IMA_BUF_BinBuffer nous sommes tombés sur la CTX138294 , on passe donc par un Queryds /table:LMS_ServerLoadTable >ErrorGet-XaServerLoad.txt et en cherchant dans le fichier de sortie nous avons retrouvé notre serveur.

En se connectant sur le serveur en question nous avons constaté que le service IMA était encore démarré, (alors que le serveur était censé être sorti de la ferme) une fois le service arrêté et désactivé (juste au cas ou), la command qfarm /load retournais bien la liste des serveurs membre avec leurs charges respectives.

4

Problème d’affichage qfarm /load

Sur plusieurs fermes XenApp 6.5 R01 US Sp1, on nous a remonté  un problème d’affichage lors de l’exécution d’un qfarm /load (ou query farm /load pour les anciens 😉 ).

Qfarm_1En effet la sortie quelque peu décalé 🙂

Après quelques googles infructueux et afin de pallier rapidement ce problème d’affichage (un troubleshoting en bon et du forme viendra rapidement) nous sommes passés par un PowerShell faisant appel à la cmdlet Get-XaServerLoad.

Nous avons ajouté en argument la possibilité de rentrer une charge afin de n’afficher que les serveurs ayant une charge égale ou supérieure à la charge rentrée (si aucun argument n’est rentré la totalité des serveurs sera affichée) ainsi qu’un compteur totalisant le nombre de serveurs issus du qfarm /load.

Dans notre cas nous avons mis le script QfarmPS.ps1 dans %ProgramFiles(x86)%\Citrix\system32 afin que ce dernier puisse être lancé directement via une console PowerShell.

Qfarm_21Un screenshot avec et sans argument

 

Download_2QfarmPS.ps1