Téléchargement des produits


Version anglaise


 


Cette fonction permet de créer un exchange (une entité routeur de message) dans un broker de messages supportant le protocole AMQP v0.9.1. Cette API a été validée avec le logiciel d'agent de messages open source RabbitMQ (https://www.rabbitmq.com/).


L'exécution de cette fonction s'appuie sur un fichier de paramétrage (au format YAML dans un environnement Windows ou Java, au format XML dans un environnement AS/400), définissant la configuration détaillée du broker logique Adelia manipulé.

Un exchange est défini par un nom unique. Il n'est donc pas possible de créer deux exchanges de même nom mais avec des caractéristiques différentes.


Domaine d'application

  • Client Cloud

  • Serveur Java

  • Client Java

  • Client Web

  • Client Windows

  • Serveur Windows

  • Serveur AS/400


Paramètres

ALPHA(n) AdeliaLogicalBroker Nom du broker logique Adelia. Ses paramètres (broker, port, etc.) sont définis dans le fichier de configuration AdeliaLogicalBrokersConfig.yaml.
ALPHA(n) ExchangeName Nom de l'exchange (routeur de message) dans lequel envoyer le message. 

ALPHA(n)


ExchangeType

Type de l'exchange. Valeur parmis "direct", "fanout", "topic" ou "headers". 

Cf. https://www.rabbitmq.com/tutorials/amqp-concepts.html

BOOL Durable Un exchange durable est automatiquement recrée lorsque le broker de message redémarre.
BOOL AutoDelete Un exchange auto-delete est supprimé lorsque la dernière queue n'est plus liée à celui-ci.
BOOL Interne

Un exchange interne ne peut pas être directement adressé par un client d'agent de message mais peut être adressé par un autre exchange lorsqu'il est lié à lui.

IMAGE ou ALPHA ExchangeArguments

Paramètres supplémentaires permettant de particulariser l'exchange à créer. Ce paramètre doit être au format JSON sous la forme d'un objet. Ses attributs sont parmi les suivants :

    • alternate-exchange

Cf. https://www.rabbitmq.com/ae.html

IMAGE ou ALPHA ExchangeBinding

Information de liaison entre cet exchange et d'autres exchanges. Ce paramètre doit être au format JSON sous la forme d'une liste d'objets. Chaque objet représente une configuration de liaison entre cet exchange (l'exchange source) et un autre exchange (l'exchange destination). Les attributs sont parmi les suivants :

    • exchangeDest : nom de l'exchange destination,
    • routingKey : clé de routage des messages permettant à l'exchange source de determiner à quel exchange destination faire suivre ce message,
    • arguments : objet permettant de définir un critère de liaison avec un exchange destination de type "headers";.

Cf. https://www.rabbitmq.com/e2e.html, https://www.rabbitmq.com/blog/2010/10/19/exchange-to-exchange-bindings/

NUM_BIN_2 CodeRetour

Code retour :

0 : Succès de l'exécution.

-1 : Le paramètre ExchangeArguments n'est pas du bon type Adélia.

-2 : Le paramètre ExchangeBinding n'est pas du bon type Adélia.

-3 : Le paramètre AdeliaLogicalBroker ne doit pas être vide.

-4 : Le paramètre ExchangeName ne doit pas être vide.

-5 : Valeur de ExchangeType non supportée.

-6 : Erreur lors de l'analyse syntaxique du paramètre ExchangeArguments.

-7 : Erreur lors de la transformation JSON du paramètre ExchangeArguments.

-8 : Erreur lors de la lecture du paramètre ExchangeArguments.

-9 : Erreur lors de l'analyse syntaxique du paramètre ExchangeBinding.

-10 : Erreur lors de la transformation JSON du paramètre ExchangeBinding.

-11 : Erreur lors de la lecture du paramètre ExchangeBinding.

-12 : Configuration non chargée. Aucun broker logique défini ( fichier .YAML non défini, trouvé, ou chargé).

-13 : Aucune configuration définie dans le fichier .YAML pour l'Adelia broker logique spécifié.

-14 : Erreur lors de la création du client d'agent de message.

-15 : Erreur lors de la création des entités (exchanges, queues, liaisons) définies dans la configuration du broker logique AdeliaLogicalBroker.

30 : Erreur lors de la déclaration de l'exchange au broker de message.

60 : Erreur lors de la déclaration des liaisons entre cet exchange et d'autres exchanges.



Exemple 1

myExchange = 'directExchange' 

myExchangeType = 'direct' 


Creation d'un echange de type direct non durable, en suppression automatique et non interne 

APPELER_DLL 'VaToolBx' 'VaToolBxAMQPCreateExchange' 'myLogicalBrokermyExchange myExchangeType *FAUX *VRAI *FAUX *BLANK *BLANK myReturnCode




Exemple 2

myExchange = 'headersExchange1' 

myExchangeType = 'headers' 

myExchangeBinding = '[{"exchangeDest": "headersExchange2", "arguments": {"x-match" : "all", "propHeader1": "value1""propHeader2": "value2"}}]' 


* Création d'un exchange de type headers lié à l'exchange headersExchange2 en utilisant comme routing key l'ensemble des attributs propHeader1 et propHeader2 

APPELER_DLL 'VaToolBx' 'VaToolBxAMQPCreateExchange' 'myLogicalBrokermyExchange myExchangeType *FAUX *VRAI *FAUX *BLANK myExchangeBinding myReturnCode



Liste des fonctions de la DLL VaToolBx par thème

↑ Haut de page




  • Aucune étiquette