Adaptateur Apache ActiveMQ
Grâce à l'adaptateur ActiveMQ, les utilisateurs peuvent accéder à n'importe quelles files d'attente de l'adaptateur Active MQ pour envoyer et recevoir des messages. Les utilisateurs peuvent également créer une toute nouvelle file d'attente pour envoyer et recevoir des messages.
Ce document présente le service d'agent de messages Apache ActiveMQ et l'adaptateur Apache ActiveMQ.
Apache ActiveMQ récupère les messages d'une file d'attente de messages, découpe un message de sorte que le message ne dévoile pas trop d'informations sur l'application de l'expéditeur à l'application qui récupère le message. Après l'avoir découpé, il place le message dans la file d'attente pour qu'il soit récupéré par une autre application. Apache ActiveMQ peut ensuite récupérer la réponse depuis l'application du destinataire, découper la réponse de sorte à ne révéler qu'un minimum d'informations sur l'application du destinataire, puis placer la réponse transformée dans la file d'attente de messages. En faisant cela, il implémente efficacement le découplage des deux applications de communication en réduisant la conscience mutuelle que devraient avoir ces deux applications l'une de l'autre afin de pouvoir échanger des messages. Un message est supprimé de la file d'attente une fois lu. Apache ActiveMQ est un agent de messages open source et un système de messagerie asynchrone, codé en Java avec le client Java Message Service (JMS).
L'adaptateur ActiveMQ établit une connexion au serveur ActiveMQ depuis une application, à travers laquelle les utilisateurs de l'application peuvent accéder à n'importe quelles files d'attente du serveur ActiveMQ pour envoyer et recevoir des messages. Avec cet adaptateur, les utilisateurs peuvent envoyer les trois types de message suivants à une file d'attente : texte, octet et blob. Les messages sont reçus un par un dans l'ordre de leur insertion.
Propriétés et commandes de l'adaptateur
Cette section fournit des détails sur les propriétés de l'adaptateur à configurer pour définir les connexions et les actions, et importer des schémas. Le tableau suivant répertorie leurs propriétés, leur portée, si elles sont requises ou non, et les commandes de l'adaptateur vers lesquelles elles redirigent pour une utilisation dans les cartes compilées et les exécutions de carte. Une portée DI signifie que la propriété est énumérée de manière dynamique ; l'adaptateur est invoqué pendant la configuration d'action pour fournir l'ensemble de valeurs autorisées pour cette propriété. Une description détaillée des propriétés est fournie après le tableau.
| Propriété de l'adaptateur | Portée
|
Obligatoire | Une commande d'adaptateur correspondante doit être directement utilisée dans les fonctions GET et PUT |
|---|---|---|---|
| URL= URL | CO | Oui | -URL, l'URL pour se connecter à la file d'attente. |
| createQueue= create_queue | OC/P | Non | -CQ, indicateur booléen pour décider si la file d'attente doit être créée. |
| queueName= queue_name | DI/IC/OC/G/P | Oui | -Q, nom de la file d'attente sur laquelle envoyer et recevoir des messages. |
| msgType= message_type | OC/P | Non | -MT Le type de message envoyé (les types pris en charge sont : texte / octet / blob). |
| delayTime= delay_time | IC/G | Non | -DT Reçoit le message suivant qui arrive dans un délai spécifié. |
| logging=info|errors|verbose|off | IC/OC/G/P | Non | -T[E|V]?[+]? [file_name] |
| append_log=true|false | IC/OC/G/P | Non | -T[E|V]?[+]? [file_name] |
| log_file_name=file_name | IC/OC/G/P | Non | -T[E|V]?[+]? [file_name] |
URL= URL
L'URL ou l'URI de l'agent permet d'exécuter un agent configuré à l'aide d'un URI unique pour toutes les configurations (exemple d'URL d'agent par défaut : tcp://localhost:61616). Ce paramètre requis est nécessaire au moment de la configuration de la connexion. Il s'agit d'un paramètre obligatoire. L'URL peut être utilisée avec la commande -URL.
createQueue= create_queue
Il s'agit d'un indicateur booléen. Il est utilisé au moment de l'envoi d'un message à ActiveMQ. Si la valeur de cet indicateur est "true" et que la file d'attente particulière n'est pas présente, il créera une file d'attente. Si la valeur de cet indicateur est "false" et que la file d'attente n'est pas présente, l'utilisateur rencontrera une exception de nom de file d'attente invalide. Si la valeur n'est pas mentionnée pour cet indicateur, alors la valeur est "false" par défaut. Le paramètre Créer une file d'attente peut être transféré à l'adaptateur avec la commande -CREATEQUEUE ou -CQ.
queueName= queue_name
Cette propriété requise indique le nom de la file d'attente depuis et à partir de laquelle les messages seront envoyés et reçus. La propriété Nom de file d'attente peut être transférée aux cartes d'entrée ou de sortie de l'adaptateur avec la commande -QUEUE ou -Q.
msgType= message_type
Cette propriété spécifie le type de message envoyé à l'adaptateur ActiveMQ. Les types de message actuellement pris en charge sont : texte, blob, octet. Les fichiers blob sont, par exemple, un fichier image volumineux ou un fichier PDF. Une exception "type de message invalide" se produit si un utilisateur essaye de configurer un type de message autre que ceux pris en charge. Bien qu'il s'agisse d'un paramètre optionnel, il est recommandé de configurer un type de message au moment de la création d'une carte de sortie. La propriété Type de message peut être transférée aux cartes de sortie de l'adaptateur avec la commande -MSGTYPE ou -MT.
delayTime= delay_time
Cette propriété spécifie la durée au bout de laquelle l'adaptateur recherchera le prochain message. Un délai d'expiration de zéro n'expire jamais, et l'appel est bloqué indéfiniment. La valeur du délai d'expiration est spécifiée en millisecondes. Cette propriété est optionnelle, mais il est recommandé de la configurer lors de la réception de messages depuis ActiveMQ (utilisé dans une carte d'entrée) avec une valeur minimale (1) afin d'éviter d'être bloqué si aucun message n'est présent dans la file d'attente. La propriété Délai peut être transférée aux cartes d'entrée ou de sortie de l'adaptateur avec la commande -DELAYTIME ou -DT.
logging=info|errors|verbose|off
Cette propriété spécifie le niveau de journalisation à utiliser pour le fichier journal (trace) produit par l'adaptateur. Par défaut, la valeur est "off". La valeur "info" signifie de consigner les messages d'information et d'erreur, la valeur "error" signifie de consigner uniquement les messages d'erreur et la valeur "verbose" signifie de consigner les messages de débogage et de niveau de trace en plus des messages d'information et d'erreur.
append_log=true|false
Cette propriété spécifie l'indicateur qui signale l'action à effectuer lorsque le fichier journal spécifié existe déjà. Lorsque la valeur est "true", les messages du journal sont annexés au fichier. Lorsque la valeur est "false", le fichier est tronqué et les messages sont écrits dans le fichier vide. La valeur par défaut est true.
log_file_name=file_name
Il s'agit du nom du fichier journal dans lequel les messages des journaux sont écrits. S'il n'est pas spécifié, le système utilise le nom du fichier journal par défaut m4activeMQ.trc et stocke le fichier dans le répertoire où se trouve la carte compilée exécutée.
ExemplesExemples de fonction de mappe GET
Dans l'exemple suivant, supposons que l'adaptateur utilisé dans une fonction GET soit défini comme suit :
Le premier message dans la file d'attente sera récupéré et transformé conformément à l'adaptateur mentionné dans la carte de sortie.
GET("ACTIVEMQ", "-URL tcp://localhost:61616 -Q TEST_QUEUE -DT 5 -TV C:\temp\m4activemq.log")
Supposons à présent que la fonction de mappe GET soit définie comme suit (le nom de file d'attente spécifié n'est pas présent) :
GET("ACTIVEMQ", -URL tcp://localhost:61616 -Q MISSING_QUEUE -DT 5 -TV C:\temp\m4activemq.log)
Dans ce cas, l'adaptateur renvoie une erreur : La file d'attente MISSING_QUEUE n'existe pas, car il ne peut pas trouver le nom de file d'attente spécifié.
Exemples de fonction de mappe PUT
Dans l'exemple suivant, supposons que l'adaptateur utilisé dans une fonction PUT soit défini de la manière suivante :
Si la file d'attente n'est pas présente, il créera la file d'attente et y mettra le message ; si la file d'attente est présente, il mettra simplement le message dans la file d'attente TEST_QUEUE. Ici, le type de message est octet.
PUT("ACTIVEMQ", "-URL tcp://localhost:61616 -Q TEST_QUEUE -CQ -MT byte -TV C:\temp\m4activemq.log", in_data_type)
Supposons à présent que le type de message ne soit pas mentionné.PUT("ACTIVEMQ", "-URL tcp://localhost:61616 -Q TEST_QUEUE -CQ -TV C:\temp\m4activemq.log", in_data_type)
Dans ce cas, il renverra l'erreur suivante : Le type de message doit être blob / octet / texte.
Supposons à présent que l'adaptateur soit utilisé dans une fonction PUT, mais que le nom de file d'attente mentionné ne soit pas présent.
PUT("ACTIVEMQ", "-URL tcp://localhost:61616 -Q TEST_QUEUE -MT byte -TV C:\temp\m4activemq.log", in_data_type)). Il renverra le message d'erreur suivant : La file d'attente TEST_QUEUE n'existe pas. Par défaut, la valeur de l'indicateur Créer une file d'attente est "false". Elle doit être explicitement définie sur "true" si la file d'attente n'est pas présente et que l'utilisateur veut créer la file d'attente.