Partager via


Opérations de l'adaptateur d'envoi

Les adaptateurs d'envoi peuvent effectuer les opérations suivantes :

  • Resubmit : void Resubmit(IBaseMessage msg, DateTime timeStamp). Après un échec de transmission d'un message, l'adaptateur le renvoie s'il y a lieu. Il s'agit d'une base par message. Si un lot de messages a échoué, l’adaptateur doit déterminer les messages à l’origine de l’échec et renvoyer ceux qui n’ont pas provoqué l’échec du lot dans des appels distincts à Resubmit. Vous trouverez des informations à la fin de cette rubrique sur la façon de conserver les valeurs de propriété de contexte de message lorsque vous appelez Resubmit.

  • Passer au transport suivant : void MoveToNextTransport(IBaseMessage msg). Si un message échoue au cours d'un envoi et que le nombre de tentatives de renvois est atteint, l'adaptateur peut envoyer le message au transport configuré suivant pour qu'il soit transmis.

  • Suspend : void MoveToSuspendQ(IBaseMessage msg). L'adaptateur déplace un message d'envoi qui a échoué dans la file d'attente des messages interrompus si aucun autre transport secondaire n'est configuré. Vous trouverez des informations à la fin de cette rubrique sur la façon de conserver les valeurs des propriétés de contexte de message lorsque vous appelez Suspend.

  • Delete : void DeleteMessage(IBaseMessage msg). L'adaptateur supprime un message une fois que BizTalk Server l'a informé qu'il a été correctement transmis. La suppression d'un message indique à BizTalk Server que l'adaptateur a fini d'utiliser le message. En règle générale, l’opération SubmitResponse est effectuée dans le même lot que l’opération Delete associée.

  • Submit Response : void SubmitResponseMessage(IBaseMessage solicitMsgSent, IBaseMessage responseMsgToSubmit). L'adaptateur envoie une réponse au lot à renvoyer à BizTalk Server. Cette opération inclut le message d'origine dans l'appel avec la réponse afin que BizTalk Server puisse les mettre en corrélation.

  • Annuler la réponse : void CancelResponseMessages(string correlationToken). Si l’envoi d’un message de réponse doit être annulé avant l’envoi du lot, la méthode CancelResponseMessages est utilisée, en passant le jeton de corrélation pour la suppression du message de réponse associé.

    Lorsque vous appelez Resubmit ou Suspend sur un message, vous pouvez conserver les valeurs de certaines propriétés de contexte de message. Vous pouvez enregistrer ces valeurs de propriétés au format XML. Lorsque le message est renvoyé ou suspendu, les propriétés correspondantes restent disponibles dans le contexte du message.

    La chaîne XML suivante décrit le format auquel les informations sont enregistrées :

<PropertiesToUpdate>  
<Property name="StringProperty" nameSpace="http://MyNamespace1" vt="8">SomeString</Property>  
<Property name="IntProperty" nameSpace="http://schemas.microsoft.com/BizTalk/2005/test-properties" vt="3">4</Property>  
<Property name="BoolProperty" nameSpace="http://schemas.microsoft.com/BizTalk/2005/test-properties" vt="11">0</Property>  
</PropertiesToUpdate>  

La chaîne XML est générée par le code suivant :

private string GetPropsToUpdateXml(int nextRetryAttempt)  
{  
string result = "<PropertiesToUpdate><Property name=\"RetryAttempts\" nameSpace=\"http://schemas.microsoft.com/BizTalk/2005/test-properties\" vt=\"3\">" + nextRetryAttempt.ToString() + "</Property></PropertiesToUpdate>";  
return result;  
}  

Cette chaîne est ensuite enregistrée dans le contexte du message à l'aide du code suivant :

Message.Context.Write("PropertiesToUpdate", "http://schemas.microsoft.com/BizTalk/2003/system-properties", GetPropsToUpdateXml(++retryAttempt));  

Lorsque le message est renvoyé, l'adaptateur peut lire cette propriété à l'aide de la ligne de code suivante :

propValue = inmsg.Context.Read("RetryAttempts", "http://schemas.microsoft.com/BizTalk/2005/test-properties");