SIMessage
L'interface SIMessage est l'interface publique d'un message de bus d'intégration de services qui doit être utilisée par les médiations et les autres composants du bus d'intégration de services. Cette interface étend java.lang.Cloneable et java.lang.Serializable.
La version des objets de données de service (SDO) pris en charge par les médiations est Version 1.
L'interface
SIMessage contient de nombreuses méthodes permettant d'utiliser entre autres les
propriétés des messages, le contenu des en-têtes, le chemin de routage et les métadonnées :
- La méthode getDataGraph renvoie le graphique des données SDO. Elle comporte le contenu de la charge utile SIMessage dans une représentation en arborescence. A l'aide du graphique des données, vous pouvez utiliser directement les zones individuelles de la charge utile. Pour plus d'informations sur les graphes de données, voir rubrique Graphes de données SDO.
- Vous pouvez transcoder une charge utile de message en appelant la méthode getNewDataGraph(format). Elle renvoie une copie de la charge utile au nouveau format. Vous pouvez replacer le nouveau graphique de données dans le message en utilisant setDataGraph(DataGraph, format). Pour plus d'informations, voir Conversion entre les formats de message.
- Si vous voulez consigner un message en tant que flux d'octets simple, vous pouvez extraire la charge utile du message sous la forme d'un tableau d'octets à l'aide de la méthode getDataGraphAsBytes. Pour plus d'informations sur la conversion à partir d'un graphique des données en octets ainsi que sur le processus inverse, voir Conversion de la charge utile d'un message en tableau d'octets et Conversion d'un tableau d'octets en charge utile de message.
- Il existe des méthodes permettant d'extraire, de définir, de supprimer et d'effacer les propriétés des utilisateurs et celles des messages. Vous pouvez également extraire une liste des noms des propriétés des utilisateurs. Pour plus d'informations sur l'utilisation de ces propriétés, voir Utilisation des propriétés des messages.
- Les chemins de routage de transmission et inverses définissent une liste
séquentielle de destinations de bus intermédiaires par lesquelles les messages doivent
passer pour atteindre une destination de bus cible. Utilisez un chemin de routage pour appliquer les médiations configurées sur plusieurs destinations
aux messages envoyés via ce chemin. Les méthodes suivantes permet d'obtenir et de
définir le contenu de ForwardRoutingPath et de ReverseRoutingPath pour un message
SIMessage :
- getForwardRoutingPath()
- setForwardRoutingPath()
- getReverseRoutingPath()
- setReverseRoutingPath()
- Si votre médiation modifie le contenu du message, le message risque de ne plus être valide. Si le graphique des données n'est pas valide, le message ne peut pas être envoyé via le bus d'intégration de services ou être stocké dans l'emplacement de stockage des messages. Dans ce cas, son format est incorrect. Le format d'un message est correct lorsque toutes les valeurs des propriétés du message peuvent être sérialisées et que le graphique de données du message respecte le format du message. Vous pouvez tester le message à l'aide de la méthode isWellFormed. Elle renvoie la valeur true lorsque le message contient un graphique des données dont le format est incorrect. Ce test a des conséquences sur les performances. Pour plus d'informations, voir Définition des propriétés d'optimisation d'une médiation.
- Vous pouvez utiliser la durée de vie restante du message (exprimée en millisecondes) à partir du moment où
le message a été envoyé :
- Les méthodes getTimeToLive et setTimeToLive permettent d'extraire et de définir la valeur de la zone TimeToLive dans l'en-tête du message. La valeur 0 indique que le message n'arrive jamais à expiration.
- Les méthodes getRemainingTimeToLive et setRemainingTimeToLive permettent d'obtenir le temps restant en millisecondes avant que le message n'arrive à expiration et de définir le temps restant en millisecondes avant que le message ne doive arriver à expiration.
Pour plus d'informations relatives à SIMessage, voir la documentation API.