Détection d'une action bloquée

Le moteur d'exécution des test de performances permet de détecter qu'une action est bloquée. La définition de l'état "bloqué" est fournie par le créateur de l'action. La définition est fournie sous forme de délai pendant lequel une tâche du moteur peut ne pas répondre au cours de l'exécution de l'action avant d'être considérée comme bloquée. Le moteur d'exécution des tests de performances consigne la détection des actions bloquées au niveau FINEST dans le journal d'identification des problèmes. Dans le cas le plus simple, l'exécution est suspendue et l'action bloquée est identifiée en examinant le journal d'identification des problèmes après avoir cliqué sur Arrêter pour arrêter l'exécution.

Non seulement un protocole peut détecter les actions bloquées, mais il peut également être notifié que l'action est bloquée. Une référence à l'unité d'exécution bloquée du moteur est fournie avec l'action, ce qui permet à un protocole d'envoyer un message à l'unité d'exécution bloquée. Lorsqu'il est averti qu'une action est bloquée, le protocole peut retenter l'action, la terminer et passer à l'action suivante ou mettre fin à l'exécution de l'utilisateur virtuel.

L'interface IKAction fournit la méthode suivante comme point d'entrée pour que les protocoles réagissent lorsqu'une action est bloquée :

public void blocked(). L'état de l'objet KAction, lorsqu'il accède à blocked(), est potentiellement endommagé. Le programme d'écriture du protocole doit considérer qu'une partie ou que l'intégralité des données associées à l'action ne sont pas sécurisées. En outre, les verrous qui ont pu être actifs pendant execute() ont été libérés.

public long getBlockedTimeout()

Renvoie le délai de blocage de l'action. La valeur par défaut est 0 ; l'action est bloquée indéfiniment

public WorkerThread getWorkerThread()

Renvoie la tâche du moteur qui exécute l'action lorsque l'état bloqué est détecté.

IEngine

L'interface du moteur des tests de performances a ajouté public boolean createWorker(). L'objet de createWorker() est de permettre aux agents de surveillance des unités d'exécution d'ajouter des agents supplémentaires en réponse à la suppression des agents qui exécutaient des actions bloquées.


Commentaires