Rubrique précédente: Transactions logiquesRubrique suivante: Suivi des transactions


Tolérance de correspondance

La Match Tolerance (Tolérance de correspondance) définit la méthode utilisée par le VSE pour déterminer si une transaction donnée correspond à la transaction entrante.

Les niveaux de la tolérance de correspondance sont les suivants :

Operation (Opération)

Tolérance de correspondance la plus élevée. Le nom d'opération de la transaction entrante doit correspondre au nom de la transaction enregistrée.

Signature

Le nom d'opération doit correspondre et les noms des arguments doivent correspondre exactement, sans ajout ni suppression. L'ordre des arguments ne doit pas nécessairement être identique.

Exact

En plus de la correspondance de signature, les valeurs de chaque argument doivent correspondre aux valeurs enregistrées, telles que définies par les opérateurs de correspondance d'arguments.

Opérateurs de correspondance d'arguments

Tous les arguments d'une demande ont un opérateur de correspondance. Dans le cas d'une opération de correspondance Exact, il contrôle la mise en correspondance de la valeur de l'argument dans l'image de service avec la valeur de l'argument dans la demande entrante.

Les opérateurs de correspondance disponibles sont les suivants :

Anything (Tout type d'argument)

Renvoie toujours la valeur true. L'enregistreur de service virtuel définit par défaut la comparaison sur Anything (Tout type d'argument) lorsqu'il détermine qu'un argument est une date. La valeur entrante pour cet argument peut être une valeur quelconque. L'argument doit être présent pour que la correspondance entre la signature et les données META fonctionne, mais la valeur est ignorée et peut être vide ou nulle.

= Equal (Egal à)

Renvoie la valeur True si les valeurs sont identiques.

!= Not equal (Non égal à)

Renvoie la valeur True si les valeurs sont différentes.

<Less than (Inférieur à)

Renvoie la valeur True si la valeur entrante est inférieure ou antérieure à la valeur issue de l'image de service.

<= Less than or equal (Inférieur ou égal à)

Renvoie la valeur True si la valeur entrante est inférieure, antérieure ou égale à la valeur issue de l'image de service.

> Greater than (Supérieur à)

Renvoie la valeur True si la valeur entrante est supérieure ou ultérieure à la valeur issue de l'image de service.

>= Greater than or equal (Supérieur ou égal à)

Renvoie la valeur True si la valeur entrante est supérieure, ultérieure ou égale à la valeur issue de l'image de service.

Regular expression (Expression régulière)

Renvoie la valeur True si la valeur entrante (sous forme de chaîne) correspond à la valeur issue de l'image de service au format d'expression régulière.

Property Expression (Expression de propriété)

La valeur doit être au format d'une expression de script placée entre deux accolades {{ }}. Cette propriété ou expression est évaluée. Si le résultat commence par Y, y, T, t ou ON, l'argument renvoie une correspondance. La valeur d'argument dans la demande entrante est ignorée, sauf si elle est référencée dans le script.

Remarque : Si un argument est indiqué comme date, les valeurs issues des demandes à comparer seront converties en date avant la comparaison.

Métatransactions et réponses spécifiques

Lorsque le VSE recherche une correspondance de conversation, il recherche uniquement dans les métatransactions. La tolérance de correspondance d'une métatransaction ne peut pas être Exact (valeur par défaut : Signature). Chaque métatransaction contient une ou plusieurs réponses spécifiques, qui peuvent avoir la tolérance de correspondance de votre choix (valeur par défaut : Exact).

Si aucune des réponses spécifiques ne correspond à une métatransaction, la réponse spécifiée pour la métatransaction sera utilisée.

Mode de sélection de la réponse suivante

  1. Si la demande entrante est contenue dans une conversation, recherchez une correspondance basée sur la tolérance de navigation et d'autres règles expliquées précédemment.
  2. Si aucune correspondance n'est détectée dans la conversation actuelle, recherchez une autre conversation, sauf si la tolérance de navigation est définie sur Close.
  3. Si une correspondance de conversation a été détectée et qu'une réponse spécifique a été obtenue (au lieu d'une simple correspondance de métatransaction), utilisez-la.
  4. Dans le cas contraire, recherchez une correspondance spécifique dans les transactions sans état et utilisez-la (le cas échéant).
  5. Si aucune correspondance spécifique n'a été détectée dans la liste de transactions sans état, mais qu'une correspondance de métatransaction a été détectée dans la liste des conversations, utilisez cette correspondance de métatransaction.
  6. Si aucune correspondance conversationnelle, mais qu'une correspondance de métatransaction a été détectée dans la liste de transactions sans état, utilisez la correspondance de métatransaction.
  7. Envoyez un échec avec le message No match found (correspondance introuvable) et renvoyez la réponse conversationnelle inconnue ou la réponse sans état inconnue spécifiée dans l'image de service. Vous pouvez remplacer la réponse en fonction du protocole et des gestionnaires utilisés.

Procédure de débogage des échecs de correspondance

Si les correspondances échouent, ouvrez le fichier LISA_HOME\logging.properties et définissez log4j.logger.VSE sur DEBUG (Déboguer) ou TRACE (Suivi). De cette façon, le VSE envoie des détails au fichier vse_xxx.log, où xxx correspond au nom de l'image de service. La propriété log4j.logger.VSE indique également les éléments correspondants et non correspondants de manière exacte.

Définissez la propriété log4j.logger.VSE sur INFO ou WARN pour un environnement de production. Ne conservez pas le niveau DEBUG ou TRACE plus longtemps que nécessaire.