Téléchargement des produits


Version anglaise


 

      

      

      


EADELIA





(B) (C)

Paragraphe d'utilisation

onStart / onMessage

Syntaxe

BRK_REPONSE NomPropriétéAlpha SuiteParamètres

SuiteParamètres

SuiteParamètres Paramètre | Paramètre | Rien

Paramètre

<variable paramètre> | <littéral paramètre>

Description

Cet ordre permet de fixer des informations sur la réponse à retourner en fin de paragraphe onStart/onMessage.


Dans un paragraphe onStart

Un programme EADELIA offre la possibilité à l'utilisateur lors de l'exécution du paragraphe onStart de stopper le démarrage du souscripteur : l'ordre BRK_REPONSE permet d'acquitter positivement ou négativement l'événement ON_START.

Dans la cas d'un acquittement négatif, les événements ON_ERROR et ON_STOP sont envoyés au souscripteur : les paragraphes onError et onStop sont exécutés et le souscripteur est arrêté avant de s'abonner aux topics définis.


Par défaut, en l'absence d'acquittement explicite de la part de l'utilisateur, le programme EADELIA acquitte positivement l'événement ON_START et le souscripteur est démarré.


Acquittement positif

BRK_REPONSE '*ACK'


Acquittement négatif

BRK_REPONSE '*NACK'


Remarque :

Cet acquittement est pris en compte en fin de paragraphe onStart.

Seule la dernière valeur d'acquittement (le dernier ordre BRK_REPONSE exécuté) est pris en compte.


Dans un paragraphe onMessage

Cet ordre permet de fixer une réponse suite au traitement du message courant dans le paragraphe onMessage :

  • il est possible d'arrêter le souscripteur à la fin du traitement du message courant,
  • suivant la nature du courtier, il possible d'acquitter positivement ou négativement le message.


Stopper le souscripteur

La demande d'arrêt se traduit par l'envoi d'un événement ON_STOP au souscripteur (le paragraphe onStop est exécuté). Suivant le courtier, il est possible de particulariser le processus d'arrêt du souscripteur :

Kafka

BRK_REPONSE '*STOP'

Suivant la valeur de la clé "subconf/config/brokerConfig/subscribeTopic/stopImmediate", stoppe le souscripteur à la fin du paragraphe onMessage du message courant ou du dernier message du lot récupéré au dernier appel de la fonction poll.
MQTT v3

BRK_REPONSE '*STOP'

Stoppe le souscripteur à la fin du paragraphe onMessage du message courant.

Comme la demande d'arrêt du consommateur est faite en asynchrone, il est possible qu'un ou plusieurs messages soient envoyés au souscripteur avant sa fermeture.

MQTT v5

BRK_REPONSE '*STOP'

Stoppe le souscripteur à la fin du paragraphe onMessage du message courant.

Comme la demande d'arrêt du consommateur est faite en asynchrone, il est possible qu'un ou plusieurs messages soient envoyés au souscripteur avant sa fermeture.

Nats Jetstream

BRK_REPONSE '*STOP'

Stoppe le souscripteur à la fin du paragraphe onMessage du message courant

BRK_REPONSE '*STOP_AFTER_BATCH'

Stoppe le souscripteur à la fin du paragraphe onMessage du dernier message du lot récupéré au dernier appel de la fonction de récupération de messages (seulement si la clé "subconf/config/brokerConfig/subscribeTopic/subscribeType" vaut "Pull").

Remarque :

*STOP et *STOP_AFTER_BATCH sont exclusifs.


RabbitMQ AMQP

BRK_REPONSE '*STOP'

Stoppe le souscripteur à la fin du paragraphe onMessage du message courant.
Redis Pub/Sub

BRK_REPONSE '*STOP'

Stoppe le souscripteur à la fin du paragraphe onMessage du message courant.

Comme la demande d'arrêt du consommateur est faite en asynchrone, il est possible qu'un ou plusieurs messages soient envoyés au souscripteur avant sa fermeture.


Acquitter le message

La demande d'acquittement de message s'effectue au moment de l'appel de l'ordre BRK_REPONSE (contrairement à la demande d'acquittement dans le paragraphe onStart, qui est pris en compte à la fin de l'exécution du paragraphe).

De plus, cette demande n'est prise en compte que si le souscripteur a été défini avec un mode d'acquittement manuel et non automatique.

Suivant le courtier, il est possible de particulariser le processus d'acquittement de message :

Kafka

BRK_REPONSE '*ACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/ackMode" vaut "MANUAL" ou "MANUAL_IMMEDIATE", acquitte positivement le message en cours de traitement (si la clé "subconf/config/brokerConfig/subscribeTopic/typeMsgHandling" vaut "SINGLE") ou la partie des messages traités dans le lot (si la clé "subconf/config/brokerConfig/subscribeTopic/typeMsgHandling" vaut "BATCH").


Kafka maintient dans les partitions la position du dernier message envoyé et le dernier message acquitté. L'acquittement peut se faire après chaque message traité ou après un certain nombre de messages traités : l'acquittement du dernier message traité acquittera les messages traités non encore validés.

Dans la cas de traitement "BATCH" de messages, il est possible de savoir la position du message traité dans le lot grâce aux clés 'firstPolled' et 'lastPolled' associées au message.

BRK_REPONSE '*NACK'  SleepTime

SleepTime

<ConstanteNum> | <variable NUM_BIN_8>

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/ackMode" vaut "MANUAL" ou "MANUAL_IMMEDIATE", acquitte négativement le message en cours de traitement (si la clé "subconf/config/brokerConfig/subscribeTopic/typeMsgHandling" vaut "SINGLE") ou la partie des messages traités dans le lot (si la clé "subconf/config/brokerConfig/subscribeTopic/typeMsgHandling" vaut "BATCH").


Le paramètre SleepTime indique le temps de veille du souscripteur afin de permette au courtier de gérer la réorganisation des messages à traiter.

Le courtier redistribuera le(s) message(s) ultérieurement (au même souscripteur ou à un autre souscripteur du même groupe).

MQTT v3

BRK_REPONSE '*ACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/manualAcks" vaut *VRAI et que la qualité de service (QoS) du message est strictement supérieure à 0, acquitte positivement le message en cours de traitement.

BRK_REPONSE '*NACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/manualAcks" vaut *VRAI et que la qualité de service (QoS) du message est strictement supérieure à 0, acquitte négativement le message en cours de traitement.

Le courtier redistribuera le message ultérieurement.

MQTT v5

BRK_REPONSE '*ACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/manualAcks" vaut *VRAI et que la qualité de service (QoS) du message est strictement supérieure à 0, acquitte positivement le message en cours de traitement.

BRK_REPONSE '*NACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/manualAcks" vaut *VRAI et que la qualité de service (QoS) du message est strictement supérieure à 0, acquitte négativement le message en cours de traitement.

Le courtier redistribuera le message ultérieurement.

Nats Jetstream

BRK_REPONSE '*ACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/pushSubOpts/consumerConfig/ackPolicy" ou "subconf/config/brokerConfig/subscribeTopic/pullSubOpts/consumerConfig/ackPolicy" vaut "All" ou "Explicit", acquitte (de manière asynchrone) positivement le message en cours de traitement ("Explicit") ou l'ensemble des messages du lot en cours de traitement ("All").

BRK_REPONSE '*NACK'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/pushSubOpts/consumerConfig/ackPolicy" ou "subconf/config/brokerConfig/subscribeTopic/pullSubOpts/consumerConfig/ackPolicy" vaut "All" ou "Explicit", acquitte négativement le message en cours de traitement ("Explicit") ou l'ensemble des messages du lot en cours de traitement ("All").

Le courtier redistribuera le(s) message(s) ultérieurement.

BRK_REPONSE '*ACK_SYNC' Timeout

Timeout

<ConstanteNum> | <variable NUM_BIN_8>

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/pushSubOpts/consumerConfig/ackPolicy" ou "subconf/config/brokerConfig/subscribeTopic/pullSubOpts/consumerConfig/ackPolicy" vaut "All" ou "Explicit", acquitte (de manière synchrone) positivement le message en cours de traitement ("Explicit") ou l'ensemble des messages du lot en cours de traitement ("All").


Le paramètre Timeout indique la durée d'attente (en nanosecondes) d'une confirmation de l'acquittement par le courtier. Une valeur de 0 permet de ne pas attendre la confirmation du courtier.

BRK_REPONSE '*TERM'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/pushSubOpts/consumerConfig/ackPolicy" ou "subconf/config/brokerConfig/subscribeTopic/pullSubOpts/consumerConfig/ackPolicy" vaut "All" ou "Explicit", indique que vous n'avez pas réussi à traiter le message et demande au courtier de ne pas le renvoyer (à aucun consommateur).

BRK_REPONSE '*IN_PROGRESS'

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/pushSubOpts/consumerConfig/ackPolicy" ou "subconf/config/brokerConfig/subscribeTopic/pullSubOpts/consumerConfig/ackPolicy" vaut "All" ou "Explicit",

indique au courtier que le message est en cours de traitement et demande à réinitialiser le timer de rediffusion pour ce message (car vous avez besoin de plus de temps pour le traiter). Le traitement doit se terminer par un acquittement *ACK ou *NACK ou *ACK_SYNC ou *TERM.

RabbitMQ AMQP

BRK_REPONSE '*ACK' Multiple

Multiple

<Constante booléenne> | < variable BOOL>

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/autoAck" vaut *FAUX, acquitte positivement le message en cours de traitement.


Le paramètre Multiple permet, lorsque sa valeur est *VRAI, d'accuser réception de tous les messages non encore acquittés, y compris le message courant ; lorsque sa valeur est *FAUX, d'accuser réception uniquement du message courant.

BRK_REPONSE '*NACK' Multiple Requeue

Multiple

<Constante booléenne> | < variable BOOL>

Requeue<Constante booléenne> | < variable BOOL>

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/autoAck" vaut *FAUX, acquitte négativement le message en cours de traitement.


Le paramètre Multiple permet, lorsque sa valeur est *VRAI, de ne pas accuser réception de tous les messages non encore acquittés, y compris le message courant ; lorsque sa valeur est *FAUX, de ne pas accuser réception uniquement du message courant.


Le paramètre Requeue permet, lorsque sa valeur vaut *VRAI, de remettre en file d'attente le(s) message(s) rejeté(s) ;  lorsque sa valeur vaut *FAUX, de rejeter ce(s) message(s) et de le(s) remettre en lettres mortes si la configuration de la souscription le permet.

BRK_REPONSE '*REJECT' Requeue

Requeue

<Constante booléenne> | < variable BOOL>

Lorsque la clé "subconf/config/brokerConfig/subscribeTopic/autoAck" vaut *FAUX, acquitte négativement le message en cours de traitement.


Le paramètre Requeue permet, lorsque sa valeur vaut *VRAI, de remettre en file d'attente le(s) message(s) rejeté(s ); lorsque sa valeur vaut *FAUX, de rejeter ce message et de le remettre en lettres mortes si la configuration de la souscription le permet.

Redis Pub/Sub
Pas de notion d'acquittement de message avec ce courtier.


Après l'exécution de cet ordre, le mot réservé *CODE_RETOUR peut prendre les valeurs suivantes :

0 (*NORMAL)

L'opération s'est bien déroulée.

-1

Erreur interne.

-2

Le paramètre NomPropriétéAlpha correspond à un mot réservé inconnu.

-3

Le second paramètre doit être booléen.

Kafka
-20 Le second paramètre doit être de type NUM_BIN_8.
MQTT v3
Pas d'erreurs spécifiques.
MQTT v5
Pas d'erreurs spécifiques.
Nats JetStream
-20 Erreur lors de l'acquittement *ACK du message.
-21 Erreur lors de l'acquittement *NACK du message.
-22 Erreur lors de l'acquittement *TERM du message.

-23

Erreur lors de l'acquittement *IN_PROGRESS du message.

-24 Erreur lors de l'acquittement *ACK_SYNC du message.
-25 *ACK_SYNC doit avoir un paramètre de type NUM_BIN_8.
-26 Erreur de conversion Long vers Duration pour *ACK_SYNC.
RabbitMQ AMQP
-20 Le second paramètre doit être booléen.
-21 Les second et troisième paramètres doivent être booléens.
-22 Erreur lors de l'acquittement *ACK du message.
-23 Erreur lors de l'acquittement *NACK du message.
-24 Erreur lors de l'acquittement *REJECT du message.
Redis Pub/Sub
Pas d'erreurs spécifiques.

Par exemple

* Acquittement positif dans bloc onStart

BRK_REPONSE '*ACK'


* Stop souscripteur Nats Jetstream

ALPHA(10) order


order = '*stop'

BRK_REPONSE order


* Acquittement négatif de message RabbitMQ AMQP

BRK_REPONSE '*NACK' *VRAI *FAUX

SI *CODE_RETOUR <> *NORMAL

AJOUTER_TRACE 'Erreur *NACK' *ERREUR

FIN

↑ Haut de page


  • Aucune étiquette