Trigger Arrivée de message AMQP

Trigger Arrivée de message AMQP

Définition 

AMQP, est un protocole de communication standard conçu pour la mise en œuvre de systèmes de messagerie asynchrone. Il fournit un cadre pour la communication entre différentes applications, en particulier celles qui opèrent dans un environnement distribué.

Les principaux objectifs de l'AMQP sont d'assurer la fiabilité de la communication, la flexibilité dans l'échange de messages, la prise en charge de la messagerie asynchrone, et la facilité d'intégration entre des applications hétérogènes. Ce protocole est souvent utilisé dans le contexte des systèmes de file d'attente (message queuing) où les messages sont envoyés entre des producteurs et des consommateurs, facilitant la communication entre des composants logiciels indépendants.

AMQP définit les règles et les formats pour l'émission, la réception et le traitement des messages, ainsi que la gestion des files d'attente. Il est indépendant du langage de programmation, de la plateforme et du fournisseur de technologie, ce qui favorise l'interopérabilité entre différents systèmes et applications. De nombreuses implémentations d'AMQP existent, telles que RabbitMQ, Apache Qpid, et d'autres, qui permettent la mise en œuvre de ce protocole dans divers environnements logiciels.

AMQP Advanced Message Queuing Protocol.

Introduction 

Le présent article permet de décrire les différentes étapes qui permettent de configurer un trigger arrivé de message AMQP.

Le trigger  AMQP permet de déclencher un flux si un message AMQP est soumis, par un autre flux, sur le bus AMQP.


Note : L'utilisation du trigger arrivé de message AMQP est soumis à licence. Merci de vérifier que votre licence vous permet d'utiliser cette fonctionnalité.

Prérequis

Les composants suivants doivent-être installés sur la machine : 
  1. DataEXchanger X
Configuration AMQP
Avant la mise en place d'un trigger arrivé de message AMQP il est nécessaire de configurer un point de connexion de type AMQP.


Configuration PDC (point de connexion) AMQP

Depuis le référentiel : 

  1. Ajout de serveur AMQP 
  2. Ajout de point de connexion de type AMQP
 Le point de connexion AMQP matérialise une connexion à un serveur AMQP. Vous devez préciser les informations de connexion à ce serveur, qui sont décrites ci-après. Ce point de connexion peut ensuite être utilisé dans un trigger "Arrivée de message AMQP" ou une étape "Dépôt de message AMQP".

La file utilisée sur le serveur AMQP n'est pas définie dans le point de connexion, mais dans l'étape ou dans le trigger.

1. Les paramètres de base pour tous les points de connexion AMQP sont les suivants :

  • Serveur
  • Port
  • Utilisateur
  • Mot de passe de l'utilisateur
  • Le délai (en secondes) à attendre que le serveur réponde


2. L'option "Utiliser une connexion sécurisée" : permet de définir des options supplémentaires offrant une sécurité accrue :

  • Clé privée du client : Chargez la clé privée que DEX doit utiliser pour se connecter au serveur AMQP.
  • Mot de passe : Mot de passe de la clé privée du client.
  • Clé publique du serveur : Chargez la clé publique du serveur AMQP.
  • Protocoles : Cochez les protocoles de sécurité parmi ceux que proposent le serveur. pour une sécurité optimale, il est préférable de ne cocher que les protocoles les plus sécurisés supportés par le serveur.


3. L'option "Utiliser la haute disponibilité" :  permet d'assurer la continuité de service même en cas de défaillances matérielles, de pannes logicielles ou d'autres événements susceptibles de perturber le fonctionnement normal du système.

Les paramètres suivants vous permettent de définir la stratégie de récupération de la connexion:
  • Intervalle de reconnexion : Délai en millisecondes (par défaut 1000 ms)
  • Multiplicateur de l'intervalle : En combinaison avec l'intervalle de reconnexion on obtient le temps d'attente entre chaque tentative de reconnexion
  • Tentatives de reconnexion : Nombre de tentatives de reconnexion avant de déclarer le broker hors service

Note : Lorsque cette option est activée, le comportement de certains paramètres peut être alterné:

- Le paramètre Port est ignoré si la chaine de connexion au serveur inclus déjà le port.
- Le paramètre Serveur doit contenir la liste des Urls des différents broker séparés par une ','
ex: localhost:5672,localhost:5674


Exemple config PDC


Configuration trigger arrivé de message AMQP

La configuration du trigger se fait comme suite.

  1. Ajout de trigger de type arrivé de message AMQP 
  2. Dans les condition du trigger, sélectionner le point de connexion créer précédemment
  3. Configurer ensuite les conditions de déclenchement 
Les messages sont filtrés par : 
  1. Nom de la file : Il s'agit du nom de la file AMQP dans laquelle le message doit être envoyé.
  2. Persistance ou non de la file : Sélection d'un type de message déclaré au niveau du référentiel.
  3. Sélecteur : Un sélecteur de message JMS permet à un client de spécifier, par des références de champ d'en-tête et des références de propriété, les messages qui l'intéressent. Seuls les messages dont les valeurs d'en-tête et de propriété correspondent au sélecteur sont distribués.

    Les sélecteurs de message ne peuvent pas référencer les valeurs du corps du message.

    Un sélecteur de message correspond à un message si le sélecteur prend la valeur TRUE lorsque les valeurs de champ d'en-tête et les valeurs de propriété du message sont remplacées par leurs identifiants correspondants dans le sélecteur.

    Un sélecteur de message est une chaîne dont la syntaxe est basée sur un sous-ensemble de la syntaxe d'expression conditionnelle SQL92. Si la valeur d'un sélecteur de message est une chaîne vide, la valeur est traitée comme nulle et indique qu'il n'y a pas de sélecteur de message pour le consommateur de message.

    L'ordre d'évaluation d'un sélecteur de message est de gauche à droite dans le niveau de priorité. Les parenthèses peuvent être utilisées pour modifier cet ordre.

    Expressions

    • Un sélecteur est une expression conditionnelle.
    • Les expressions arithmétiques sont composées d'elles-mêmes, d'opérations arithmétiques, d'identificateurs (dont la valeur est traitée comme un littéral numérique) et de littéraux numériques.
    • Les expressions conditionnelles sont composées d'elles-mêmes, d'opérations de comparaison et d'opérations logiques.
    • Les parenthèses standard () sont prises en charge pour l'évaluation de l'expression.
    • Les opérateurs logiques dans l'ordre de priorité : NOT, AND, OR
    • Les opérateurs de comparaison :
      • =, >, >=, <, <=, <> (pas égal)
    • Les opérateurs arithmétiques par ordre de priorité :
      • +, - (unaire)*, / (Multiplication et division)+, - (addition et soustraction)

    Pour plus d'information sur les sélecteurs vous pouvez consulter la page Message Selector Syntax ou JMS Interface message.

    Exemple de sélecteur sur DEX

    http_content$flowname = 'AMQP-Reception Messages' OR JMSMessageID= 'ID:Custom_MessageId'
  4. Filtre 
    1. Destinataire : Il s'agit du destinataire du message.
    2. Deux choix possibles, si le message ne correspond pas au filtre (sur le destinataire).
      1. Ne rien faire
      2. acquitter le message.


Exemples : 

Envoi de message AMQPS à l'aide de l'étape AMPS 



















Trigger AMQP



FIN