Remise ordonnée des messages dans BizTalk Server
La livraison chronologique des messages garantit que les messages publiés dans la base de données MessageBox dans un ordre indiqué sont remis à chaque abonné correspondant dans le même ordre que celui dans lequel ils ont été publiés dans la base MessageBox.
Configuration de la livraison chronologique des messages
La livraison chronologique des messages peut être configurée aux deux emplacements suivants :
- Recevoir une forme dans une orchestration
- Port d'envoi
Livraison chronologique des messages avec transports existants
Les protocoles sous-jacents de certains transports tels que FILE et HTTP ne sont pas cohérents avec la notion de livraison chronologique des messages. Toutefois, même avec de tels transports, si le port lié au transport est programmé pour une livraison chronologique des messages, BizTalk Server applique la livraison chronologique de force en faisant en sorte que le transport ne reçoive pas le message sortant suivant tant que l'envoi du message en cours n'a pas abouti. Pour y parvenir, BizTalk Server transmet chaque message à l’adaptateur de transport dans un lot unique et attend que l’adaptateur ait supprimé le message de la base MessageBox avant de lui transmettre le message suivant, dans un lot différent.
Livraison chronologique des messages pour des adaptateurs personnalisés
Les adaptateurs de réception personnalisés font l’objet de considérations particulières. Si vous écrivez un adaptateur personnalisé prenant en charge la livraison chronologique des messages à la réception, l’adaptateur doit effectuer les opérations suivantes :
Après avoir envoyé un lot de messages, votre adaptateur de réception personnalisé doit attendre le rappel BatchComplete de BizTalk Server avant d’envoyer le lot suivant. Pour plus d’informations, consultez Interfaces pour un adaptateur de réception Batch-Supported.
Si un message est en échec dans le pipeline, il doit être suspendu, de préférence d'une manière qui ne lui permet pas d’être repris. Utilisez le BTS. La propriété de contexte de message SuspendAsNonResumable dans BizTalk Server de marquer le message de manière appropriée.
Notes
La chronologie des messages peut être rompue si un message suspendu est repris plus tard. Si vous ne souhaitez pas que cela se produise, suspendez les messages ayant échoué d'une manière qui ne leur permette pas d’être repris.
Pour plus d’informations sur la création d’un adaptateur personnalisé, consultez Développement d’adaptateurs personnalisés.
Conditions pour le traitement d’une chronologie des messages de bout en bout
Pour garantir une livraison chronologique des messages de bout en bout, les conditions ci-dessous doivent être remplies :
Les messages doivent être reçus avec un adaptateur qui conserve leur ordre d'arrivée lors de leur envoi à BizTalk Server. Dans BizTalk Server, msmQ et MQSeries sont des exemples de tels adaptateurs. En outre, les adaptateurs HTTP ou SOAP permettent de soumettre des messages dans l'ordre, mais dans ce cas, le client HTTP ou SOAP doit appliquer l’ordre de force en soumettant les messages un par un.
Vous devez vous abonner à ces messages avec un port d’envoi dont l’option Livraison ordonnée est définie sur
True
.Si une orchestration est utilisée pour traiter les messages, un seul instance de l’orchestration doit être utilisé, l’orchestration doit être configurée pour utiliser un convoi séquentiel et la propriété Livraison ordonnée du port de réception de l’orchestration doit être définie sur
True
.
Restrictions
La livraison chronologique des messages n'est pas prise en charge dans les cas suivants :
Ports d’envoi dynamiques dans BizTalk Server 2013 R2 et versions antérieures
Ports d’envoi dynamiques dans BizTalk Server 2016 (et toutes versions plus récentes) pour les types d’adaptateurs qui ne prennent pas en charge la remise ordonnée sur les ports d’envoi statiques
Transports secondaires
Interactions
Lorsque la livraison chronologique est configurée pour un port d’envoi, soyez conscient des interactions possibles suivantes avec d’autres comportements configurés dans BizTalk Server :
Pour le paramètre « Arrêter d'envoyer des messages supplémentaires en cas d'échec du message actuel » sur le même port d'envoi :
Faux. seul le message ayant échoué est suspendu (d’une façon qui ne lui permet pas d’être repris) et tous les messages suivants continuent d’être traités. Cela préserve la chronologie des messages n’ayant pas échoué, mais peut provoquer l’apparition d’intervalles dans la séquence. Par exemple, si les commandes 101, 102 et 103 sont reçues et que la commande 102 est interrompue, les commandes 101 et 103 continueront à être traitées dans l'ordre.
Vrai. l'instance de port d'envoi est suspendue si le traitement d'un message échoue. Il en résulte la suspension de tous les messages suivants de l'ensemble chronologique de messages. La chronologie des messages est ainsi préservée puisque la livraison des messages suivants est interrompue jusqu'à livraison du message ayant échoué.
Si un port d’envoi de sollicitation-réponse a la propriété « Arrêter l’envoi des messages suivants en cas d’échec de message actuel » définie
true
sur , et si le traitement de l’échange récupérable est configuré pour l’étape de désassemblement du pipeline de réception pour la réponse, le port d’envoi n’arrête pas l’envoi de messages (autrement dit, le instance n’est pas suspendu) s’il existe une erreur récupérable lors du désassemblage de la réponse.Avant de supprimer un port d’envoi chronologique, assurez-vous qu’aucune instance ne lui est associée. Si des instances lui sont associées, elles doivent être terminées avant que vous ne puissiez supprimer le port d'envoi.
Livraison chronologique des messages pour le transport FILE
Les messages arrivent à l’adaptateur FILE dans l'ordre. L'adaptateur FILE peut ajouter des messages à un seul fichier ou écrire une séquence de fichiers, ce qui donne les résultats suivants :
Si les données de message sont ajoutées à un fichier unique, des messages individuels sont ajoutés dans l’ordre. L'option de livraison chronologique sur un port d'envoi qui utilise l'adaptateur FILE est pertinente uniquement si le transport d'envoi fonctionne en mode Append.
Si des messages sont écrits dans des fichiers individuels, l'ordre transparaît dans les noms de fichier, nommés séquentiellement. Dans ce cas, pour les fichiers écrits par l’adaptateur, les propriétés système du fichier relatives à la chronologie (par exemple l'heure de création ou de modification d'un fichier) ne reflètent pas obligatoirement la séquence d’arrivée du message.
Impact de la livraison chronologique des messages sur les performances
Notes
À compter de BizTalk Server 2020, pour les ports d’envoi dynamiques avec remise ordonnée où la commande n’a pas besoin d’être conservée sur différents emplacements sortants, un débit plus élevé peut être obtenu en utilisant plusieurs instances de port d’envoi pour traiter les messages envoyés à différents emplacements sortants en parallèle.
Pour obtenir une livraison chronologique des fichiers, BizTalk Server doit sérialiser le traitement des messages ordonnés à des points différents du parcours du message. Cela fonctionne avec des techniques de déploiement, telles que l’utilisation de plusieurs instances d’hôte pour le traitement en parallèle des messages. Lorsque vous utilisez la livraison chronologique des messages, même les ports configurés pour s'exécuter sur plusieurs instances d'hôte ne s'exécutent que sur une seule instance d'hôte pour garantir une livraison chronologique des messages. Toutefois, dans cette situation, la haute disponibilité est conservée. En effet, si une instance d'hôte échoue lors du traitement d’une livraison chronologique des messages, le message ayant échoué sera de nouveau traité sur une autre instance d'hôte disponible.
Lorsque la remise ordonnée est activée, l’intervalle de nouvelle tentative par défaut est de 5 minutes. Pour améliorer les performances, configurez l’intervalle avant nouvelle tentative sur la valeur minimale, à savoir 1 minute. La propriété Intervalle de nouvelle tentative peut accepter une valeur de zéro (0), mais zéro (0) n’est pas valide. Le nombre de nouvelles tentatives peut également être ajusté au nombre de nouvelles tentatives nécessaires. Par exemple, si vous savez que la demande doit être traiter en <1 minute et que la destination du port d’envoi est toujours accessible, définissez les deux valeurs sur 1.
Pour modifier les valeurs de nouvelle tentative, accédez à Guide pratique pour configurer les options avancées de transport pour un port d’envoi.
Pour plus d’informations sur l’option Livraison chronologique des messages, consultez les rubriques suivantes :
BizTalk : Options de traitement des messages ordonnés de bout en bout
Voir aussi
Livraison chronologique des messages à l’aide de l’adaptateur MSMQ
Livraison chronologique des messages à l’aide de l’adaptateur MQSeries