Téléchargement des produits


Version anglaise


 

      

      

      


EADELIA





(B) (C)

Paragraphe d'utilisation

onError / onMessage

Syntaxe

Dans un paragraphe onMessage

BRK_RECUP_MSG <variable résultat> encodage

encodage

rien | *ENCODAGE(valeurEncodage)

valeurEncodage

<ConstanteAlpha> | <IdVarAlpha >



BRK_RECUP_MSG NomPropriétéAlpha <variable résultat>


Dans un paragraphe onError

BRK_RECUP_MSG TypeInfoErreur <variable résultat>

TypeInfoErreur

*CODE_ERREUR | *ARRET_IMMED | * MSG_ERREUR

Description

Dans un paragraphe onMessage

Cet ordre permet de récupérer les informations contenues dans le message reçu.


Récupération de la charge utile d'un message

BRK_RECUP_MSG <variable résultat> <encodage>


A l'appel de cet ordre, la variable résultat reçoit la charge utile (ou payload) contenue dans le message. Le type de la variable dépend du type de charge utile supporté par le courtier de messages.

CourtierType natif de la charge utileTypes Adélia compatibles
KafkaAvro / Double / Integer / Long / Short / String / Tableau d'octetsALPHA / IMAGE / REF_CLASSE / NUM_E / NUM_P / NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8
Nats JetstreamTableau d'octetsALPHA / IMAGE / REF_CLASSE
MQTT v3Tableau d'octetsALPHA / IMAGE / REF_CLASSE
MQTT v5Tableau d'octetsALPHA / IMAGE / REF_CLASSE
RabbitMQ AMQPTableau d'octetsALPHA / IMAGE / REF_CLASSE
Redis Pub/SubTableau d'octets / AlphanumériqueALPHA / IMAGE / REF_CLASSE


Variable résultat REF_CLASSE :

Si la variable résultat est de type REF_CLASSE, on suppose que la charge utile est une donnée JSON (alphanumérique ou tableau d'octets) encodée en UTF-8. Une désérialisation JSON est appliquée sur cette donnée pour alimenter la variable REF_CLASSE.

La désérialisation s'appuie sur le convertisseur de la librairie tierce Jackson : il est possible de modifier les propriétés par défaut du convertisseur en renseignant la propriété customObjectMapper du souscripteur Adélia.


Variable résultat ALPHA et encodage :

Si la variable résultat est de type ALPHA et que le payload est un tableau d'octets, il est possible de spécifier un encodage de caractères à utiliser lors de la conversion du tableau d'octets en chaîne alphanumérique. Cette valeur d'encodage doit faire partie du registre des jeux de caractères définis par l'IANA. De plus, il doit faire partie des jeux de caractères supportés par la JVM Java.

Lorsqu'un encodage est spécifié, la conversion est faite en fonction de la valeur de l'encodage.

Lorsqu'aucun encodage n'est spécifié, les règles de conversion varient en fonction du courtier ciblé et des propriétés du message à traiter :

Courtier Règle de conversion
Kafka L'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.
Nats Jetstream L'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.
MQTT v3 L'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.
MQTT v5 Si le message a la propriété properties/payloadFormat valant vrai, l'encodage utilisé est UTF-8. Sinon, l'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.
RabbitMQ AMQP Si le message a la propriété basicProperties/contentEncoding et qu'elle définit un encodage de caractères valide, cet encodage est utilisé. Sinon, l'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.
Redis Pub/Sub L'encodage utilisé est l'encodage par défaut de la JVM Java qui exécute l'AMBSS.

Récupération d'une propriété d'un message

BRK_RECUP_MSG NomPropriétéAlpha <variable résultat>


Cet ordre permet de récupérer des informations sur le message (hors charge utile). Chaque information est définie par une clé (paramètre NomPropriétéAlpha) et a une valeur associée (paramètre variable résultat) typée.

La clé peut être définie soit par une variable alphanumérique, soit par un littéral alphanumérique. Sa valeur représente une expression XPath et désigne une propriété native du message, donc dépendante du courtier de messages associé au souscripteur Adélia.

Message issu de Kafka

Valeur de cléDescription de la propriétéType de la propriété
offsetPosition du message dans la partition Kafka associée.NUM_BIN_8
topicNom du topic dont est issu le message.ALPHA(n)
partition

Partition à partir de laquelle le message est reçu.

ALPHA(n)
keyClé associée au message (cette clé peut ne pas exister si l'émetteur n'a pas associé de clé au message).ALPHA / IMAGE / REF_CLASSE / NUM_E / NUM_P / NUM_BIN_2 / NUM_BIN_4 / NUM_BIN_8
timestampTimestamp du message.NUM_BIN_8 / TIMESTAMP
firstPolledLorsque la propriété ackMode vaut "MANUAL" ou "MANUAL_IMMEDIATE" et que la propriété typeMsgHandling vaut "BATCH", cette clé indique si le message est le premier message du lot à traiter.BOOL
lastPolledLorsque la propriété ackMode vaut "MANUAL" ou "MANUAL_IMMEDIATE" et que la propriété typeMsgHandling vaut "BATCH", cette clé indique si le message est le dernier message du lot à traiter.BOOL
headers/keysListe des clés des couples <clé, valeur> constituant l'en-tête du message.Tableau de ALPHA(n)
headers/valuesListe des valeurs des couples <clé, valeur> constituant l'en-tête du message. Le type natif des valeurs est un tableau d'octets.IMAGE / REF_CLASSE
Message issu de MQTT v3
Valeur de cléDescription de la propriétéType de la propriété
topicNom du topic dont est issu le message.ALPHA(n)
idIdentifiant du message.NUM_BIN_4
duplicate

Indique si ce message peut ou non être un doublon d'un message déjà reçu.

BOOL
retained

Retourne si oui ou non ce message a été conservé par le courtier. Indique si le message provenait ou non d'un émetteur en cours d'exécution ou s'il a été "retenu" par le courtier en tant que dernier message publié sur le topic.

BOOL
qosRetourne la qualité de service associée au message (valeur 0, 1 ou 2).NUM_BIN_4
Message issu de MQTT v5
Valeur de cléDescription de la propriétéType de la propriété
topicNom du topic dont est issu le message.ALPHA(n)
idIdentifiant du message.NUM_BIN_4
duplicate

Indique si ce message peut ou non être un doublon d'un message déjà reçu.

BOOL
retained

Retourne si oui ou non ce message a été conservé par le courtier. Indique si le message provenait ou non d'un émetteur en cours d'exécution ou s'il a été "retenu" par le courtier en tant que dernier message publié sur le topic.

BOOL
qosRetourne la qualité de service associée au message (valeur 0, 1 ou 2).NUM_BIN_4
properties
propertiesPropriétés d'un message.N / A
properties/validPropertiesListe des numéro de propriétés de messages définies pour ce message (Cf. classe Java MqttProperties).Tableau de NUM_BIN_2
properties/assignedClientIdentifierIdentifiant du client attribué (propriété numéro 18).ALPHA(n)
properties/contentTypeType du contenu du message (propriété numéro 3).ALPHA(n)
properties/correlationDataDonnées de corrélation (propriété numéro 9).IMAGE
properties/payloadFormatFormat de la charge utile du message (propriété numéro 1). Si la valeur vaut vrai, la charge utile représente une chaîne de caractères encodée en UTF-8. Si la valeur vaut faux, la charge utile est une donnée brute sans format (tableau d'octets).BOOL
properties/messageExpiryInterval

Intervalle d'expiration du message (propriété numéro 2). Cette valeur correspond à la durée de vie du message en secondes. Si l'intervalle d'expiration de message est passé et que le courtier n'a pas réussi à démarrer la livraison à un abonné correspondant, il doit alors supprimer la copie du message pour cet abonné.

NUM_BIN_8
properties/responseTopicNom de topic pour un message de réponse (propriété numéro 8).ALPHA(n)
properties/subscriptionIdentifierIdentifiant de souscripteur (propriété numéro 11).NUM_BIN_4
properties/topicAliasAlias de topic du message (propriété numéro 35).NUM_BIN_4
properties/userPropertiesPropriétés utilisateur (propriété numéro 38). Liste de couples alphanumérique <clé, valeur>. Ces propriétés peuvent être utilisées pour fournir des informations supplémentaires au courtier ou au client, y compris des informations de diagnostic.N / A
adelUtils:collectionSize(properties/userProperties)Taille de la liste des propriétés utilisateur.NUM_BIN_4
properties/userProperties[<index commençant à 1>]/keyValeur du champ clé du couple d'index <index> dans la liste des propriétés utilisateur.ALPHA(n)
properties/userProperties[<index commençant à 1>]/valueValeur du champ valeur du couple d'index <index> dans la liste des propriétés utilisateur.ALPHA(n)
Message issu de Nats Jetstream
Valeur de cléDescription de la propriétéType de la propriété
jetStream

Vérifie si le message provient de Jetstream ou s'il s'agit d'un message standard (retourne vrai si le message provient de Jetstream).

BOOL
sid

Identifiant associé à l'abonnement, utilisé par la connexion lors du traitement d'un message entrant du courtier.

ALPHA(n)
utf8mode

Indique si le sujet du message est encodé en UTF-8.

BOOL
hasHeaders

Vérifie si le message contient des propriétés d'en-tête (retourne vrai si le message en contient).

BOOL
subject

Sujet auquel ce message a été envoyé.

ALPHA(n)
replyTo

Sujet sur lequel l'application est censée envoyer un message de réponse.

ALPHA(n)
headers
headersTable de correspondance clé/valeurs associée au message. Une clé est de type alphanumérique et la valeur est une liste d'alphanumérique.N / A
headers/sizeTaille de la table de correspondance clé/valeurs associée au message (correspond au nombre d'entrées dans la table).NUM_BIN_4
headers/emptyIndique si la table de correspondance clé/valeurs associée au message est vide (de taille 0).BOOL
headers/keySetRetourne la liste des clés (correspondant aux entrées dans la table de correspondance clé/valeurs associée au message).tableau de ALPHA(n)
headers/keySet[<index commençant à 1>]Retourne la valeur de la clé d'index <index> dans la liste des clés.ALPHA(n)
headers/entrySetRetourne la liste des couples <clé, valeur> constituant la table de correspondance clé/valeurs associée au message.N / A
headers/entrySet[<index commençant à 1]/keyRetourne la valeur de la clé associée au couple d'index <index> dans la liste des couples <clé, valeur>.ALPHA(n)
headers/entrySet[<index commençant à 1]/valueRetourne la valeur du champ valeur associé au couple d'index <index> dans la liste des couples <clé, valeur>.Tableau de ALPHA(n)
Message issu de RabbitMQ AMQP
Valeur de cléDescription de la propriétéType de la propriété
envelope
envelopeEnveloppe du message.N / A
envelope/exchangeNom du routeur (ou exchange) associé au message.ALPHA(n)
envelope/redeliverIndique si le message est redélivré.BOOL
envelope/routingKeyClé de routage associée au message.ALPHA(n)
basicProperties
basicPropertiesPropriétés du message.N / A
basicProperties/contentTypeType de contenu de la charge utile du message.ALPHA(n)
basicProperties/contentEncodingEncodage du contenu de la charge utile du message.ALPHA(n)
basicProperties/deliveryModeMode de délivrance du message (message persistant ou pas). La valeur 1 indique que le message est stocké uniquement en mémoire ; la valeur 2 indique qu'il est stocké sur disque.NUM_BIN_4
basicProperties/priorityPriorité du message dans la queue associée.NUM_BIN_4
basicProperties/correlationIdIdentifiant de corrélation du message.ALPHA(n)
basicProperties/replyToNom de la queue à utiliser pour répondre au message.ALPHA(n)
basicProperties/expirationDurée de vie du message en millisecondes.ALPHA(n)
basicProperties/messageIdIdentifiant applicatif du message.ALPHA(n)
basicProperties/timestampTimestamp applicatif du message.TIMESTAMP / HEURE / DATE
basicProperties/typeType applicatif du message.ALPHA(n)
basicProperties/userIdIdentifiant utilisateur qui a publié ce message.ALPHA(n)
basicProperties/appIdIdentifiant de l'application qui a publié ce message.ALPHA(n)
Message issu de Redis Pub/Sub
Valeur de cléDescription de la propriétéType de la propriété
channel

Nom du channel d'où provient le message

ALPHA(n) / IMAGE suivant la valeur de la propriété config/brokerConfig/subscribeTopic/redisCodec.
pattern

Nom du pattern d'où est déduit le channel

ALPHA(n) / IMAGE suivant la valeur de la propriété config/brokerConfig/subscribeTopic/redisCodec.



Dans un paragraphe onError

Cet ordre permet de récupérer les informations liée à l'erreur en cours de traitement.

TypeInfoErreurDescription de la propriétéType de la propriété
* CODE_ERREUR Numéro de l'erreurNUM_BIN_4
* ARRET_IMMED Indique si l'erreur va stopper le souscripteur (et déclencher l'exécution du paragraphe onStop)BOOL
* MSG_ERREUR Libellé de l'erreurALPHA(n)



L'erreur est dépendante du contexte d'exécution donc du courtier (et de la fabrique associée).

Erreurs spécifiques Kafka
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401Erreur lors de la création du pattern de topics.

Oui

-403Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501

Erreur lors de la conversion d'un pojo Avro en pojo Adélia.

Non
Erreurs spécifiques MQTT v3
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401

Erreur lors de la création des options de connexion Paho MQTTv3 à partir de la configuration de la connexion du courtier.

Oui
-402Erreur lors de la création du client Paho MQTTv3 à l'aide des options.Oui
-403

Erreur lors de la connexion du client Paho MQTTv3 au courtier.

Oui
-404Erreur lors de l'abonnement du client Paho MQTTv3 aux rubriques.Oui
-406Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501Connexion au courtier perdue.Oui
-502Erreur lors de la déconnexion forcée du client Paho MQTTv3.Oui
-503Erreur lors de la fermeture du client Paho MQTTv3.Oui
Erreurs spécifiques MQTT v5
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401Erreur lors de la création des options de connexion Paho MQTTv5 à partir de la configuration de la connexion du courtier.Oui
-402Erreur lors de la création du client Paho MQTTv5 à l'aide des options.Oui
-403Erreur lors de la connexion du client Paho MQTTv5 au courtier.Oui
-404Erreur lors de l'abonnement du client Paho MQTTv5 aux rubriques.Oui
-406Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501Connexion au courtier perdue.Oui
-502Erreur lors de la déconnexion forcée du client Paho MQTTv5.Oui
-503Erreur lors de la fermeture du client Paho MQTTv5.Oui
Erreurs spécifiques Nats Jetstream
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401Erreur lors de la création des options de connexion Nats à partir de la configuration de la connexion du courtier.Oui
-402Erreur lors de la création de la connexion Nats à l'aide des options de connexion.Oui
-403Erreur lors de la création des options de souscription JetStream à partir de la configuration de souscription aux rubriques.Oui
-404Erreur lors de la création du contexte JetStream.Oui
-405Erreur lors de la création des options de contexte JetStream à partir de la configuration de connexion du courtier.Oui
-406Erreur lors de la souscription aux rubriques du courtier JetStream.Oui
-408Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501Erreur lors du désabonnement à la souscription aux rubriques du courtier JetStream.Oui
-502Erreur lors de la fermeture de la connexion Nats au courtier.Oui
Erreurs spécifiques RabbitMQ AMQP
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401Erreur lors de la configuration de la connexion SSL : exception de gestion des clés pour toutes les opérations traitant de la gestion des clés.Oui
-402Erreur lors de la création de la connexion AMQP.Oui
-403Erreur lors de la création du canal AMQP.Oui
-404Erreur lors de la déclaration passive de la file d'attente.Oui
-405Erreur lors de la déclaration de la file d'attente.Oui
-406Erreur lors de la consommation de base dans la file d'attente.Oui
-407Erreur lors de l'appel channel.basicQos.Oui
-408Erreur lors de la déclaration passive de l'échangeur.Oui
-409Erreur lors de la déclaration de l'échangeur.Oui
-410Erreur lors Erreur lors de la liaison de la file d'attente.Oui
-412Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501Erreur lors de la fermeture du canal.Oui
-502Erreur lors de la fermeture de la connexion.Oui
-503Fermeture de la connexion non déclenchée par l'application.Oui / Non (suivant l'activation de la reconnexion automatique)
-504Le souscripteur a été annulé par le courtier.Oui
Erreurs spécifiques Redis Pub/Sub
Numéro d'erreurLibellé d'erreurArrêt immédiat
-401Erreur lors de la création de l'URI Redis à partir de la configuration de connexion au courtier.Oui
-402Erreur lors de la création de l'objet options ClientOptions/ClusterClientOptions à partir de la configuration de connexion au courtier.Oui
-403Erreur lors de la création de la connexion Pub/Sub au courtier Redis.Oui
-404Erreur lors de l'abonnement aux canaux et modèles du courtier.Oui
-406Erreur lors du traitement de l'événement ON_START : accusé de réception négatif renvoyé.Oui
-501Erreur lors de la fermeture de la connexion au courtier Redis.Oui
-502Erreur lors de la fermeture du client Redis.Oui
-503Fermeture du client Redis Lettuce due à une perte de la connexion au courtier.Oui
-504Fermeture du client Redis Lettuce due à une erreur dans la communication avec le courtier.Oui


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 (absence de message ou de configuration).

-2

Erreur interne (absence d'erreur).

-3

Erreur de syntaxe XPath lors de l'évaluation du paramètre NomPropriétéALpha.

-4

Le paramètre mot réservé est inconnu.

-5 La clé correspond à une information qui n'existe pas ou qui n'a pas de valeur.
-11 La valeur associée à la clé ne peut pas être converti en type Adélia.
-32 La variable résultat doit être une variable de type ALPHA ou REF_CLASSE.
-33 La variable résultat ALPHA a une longueur trop petite.
-53 La variable résultat doit être une variable numérique.
-54 La variable résultat NUM_E / NUM_P a une taille trop petite.
-55 La variable résultat NUM_E / NUM_P a une partie entière trop petite.
-56 la variable résultat NUM_E / NUM_P a une partie décimale trop petite.
-57 La variable résultat a un type non compatible avec une valeur numérique.
-58 La variable résultat NUM_BIN_2 a une taille trop petite.
-59 La variable résultat NUM_BIN_4 a une taille trop petite.
-60 La variable résultat NUM_BIN_8 a une taille trop petite.
-61 La valeur associée à la clé ne peut pas être convertie en type TIMESTAMP.
-74 La variable résultat doit être une variable booléenne.
-95 La variable résultat doit être une variable DATE, TIME ou TIMESTAMP.
-116 La variable résultat doit être une variable IMAGE.
-117

La valeur associée à la clé ne peut pas être converti en tableau d'octets.

-137 La variable résulta doit être une variable REF_CLASSE.
-138 La valeur associée à la clé ne peut pas être converti en classe Adélia.
-300 La variable résultat doit être une variable tableau.
-301 La variable résultat doit être une variable tableau à une dimension.
-302 La variable résultat tableau a une taille trop petite.
-303 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur numérique.
-304 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur alphanumérique.
-305 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur booléenne.
-306 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur image.
-307 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur de classe Adélia.
-308 Le type de la variable résultat n'est pas supporté.
-309 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur date / time / timestamp.
-332 La variable tableau résultat doit être de type ALPHA ou REF_CLASSE.
-333 La variable tableau résultat ALPHA a une longueur alphanumérique trop petite.
-353 La variable tableau résultat doit être de type numérique.
-354 La variable tableau résultat NUM_E / NUM_P définit des numériques de taille trop petite.
-355 La variable tableau résultat NUM_E / NUM_P définit des numériques de partie entière trop petite.
-356 La variable tableau résultat NUM_E / NUM_P définit des numériques de partie décimale trop petite.
-357 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en valeur numérique.
-358 La variable tableau résultat NUM_BIN_2 définit des entiers de taille trop petite.
-359 La variable tableau résultat NUM_BIN_4 définit des entiers de taille trop petite.
-360 La variable tableau résultat NUM_BIN_8 définit des entiers de taille trop petite.
-361 Les items de la liste valeur de la clé ont une valeur qui ne peut pas être converti en type TIMESTAMP.
-374 La variable tableau résultat doit être de type booléen.
-395 La variable tableau résultat doit être de type date, time ou timestamp.
-416 La variable tableau résultat doit être de type image.
-417 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en tableau d'octets.
-437 La variable tableau résultat doit être de type REF_CLASSE.
-438 Les items de la liste valeur de la clé ont un type qui ne peut pas être converti en classe Adélia.
-600 La valeur associée à la clé ne peut pas être convertie en type Adélia.
-621 La valeur alphanumérique associée à la clé ne peut pas être désérialisée en classe Adélia.
-642 La valeur numérique associée à la clé ne peut pas être convertie en type numérique Adélia.
-705 Erreur lors de la récupération du tableau d'octets depuis une instance ByteBuffer.
-706

L'instance de ByteBuffer n'a pas de tableau d'octets accessible.

-707 La valeur tableau d'octets associée à la clé ne peut pas être désérialisée en classe Adélia.
-708 L'encodage de caractères est invalide.
-709 Erreur lors de la conversion de la charge utile en chaîne alphanumérique.
-900 La valeur associée à la clé ne peut pas être convertie en type Adélia.
-1521 La valeur alphanumérique associée à la clé ne peut pas être désérialisée en classe Adélia.
-1542 La valeur numérique associée à la clé ne peut pas être convertie en type numérique Adélia.
-1605 Erreur lors de la récupération du tableau d'octets depuis une instance ByteBuffer.
-1606 L'instance de ByteBuffer n'a pas de tableau d'octets accessible.
-1607 La valeur tableau d'octets associée à la clé ne peut pas être désérialisée en classe Adélia.
-1608 L'encodage de caractères est invalide pour convertir le tableau d'octets.
-1609 Erreur lors de la conversion d'une valeur du tableau d'octets en chaîne alphanumérique.

Par exemple

* Récupération de la charge utile sous la forme d'une classe Adelia (onMessage)

REF_CLASSE(COMMAND_ORDER) myCommand

BRK_RECUP_MSG myCommand


* Récupération du topic d'un message Kafka (onMessage)

ALPHA(10) msgTopic


BRK_RECUP_MSG 'topic' msgTopic


* Récupération d'un code d'erreur (onError)

NUM_BIN_4 ambssError

BRK_RECUP_MSG *CODE_ERREUR ambssError



↑ Haut de page



  • Aucune étiquette