Partager via


Opérations d’adaptateur d’envoi

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

  • Resubmit : void Resubmit(IBaseMessage msg, DateTime timeStamp). Une fois qu’un échec de transmission se produit sur un message, un adaptateur le soumette à nouveau le cas échéant. Ceci est appelé individuellement pour chaque message. Si un lot de messages a été envoyé sans succès, l’adaptateur doit déterminer les messages à l’origine de l’échec et soumettre à nouveau ceux qui n’ont pas provoqué l’échec du lot dans des appels distincts à Resubmit. Il existe 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 pendant une opération d’envoi et que ses nouvelles tentatives ont été épuisées, l’adaptateur peut envoyer le message au transport configuré suivant pour la retransmission.

  • Suspend : void MoveToSuspendQ(IBaseMessage msg). L’adaptateur déplace un message d’envoi ayant échoué vers la file d’attente suspendue si aucun transport de sauvegarde supplémentaire n’est configuré. Il existe 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 Suspend.

  • Supprimer : void DeleteMessage(IBaseMessage msg). L’adaptateur supprime un message après avoir été averti par BizTalk Server de sa transmission réussie. La suppression d’un message indique à BizTalk Server que l’adaptateur est terminé avec le message. En règle générale, l’opération SubmitResponse est effectuée dans le même lot que son opération Delete associée.

  • Soumettre la réponse : void SubmitResponseMessage(IBaseMessage solicitMsgSent, IBaseMessage responseMsgToSubmit). L'adaptateur soumet une réponse à l'ensemble de données à renvoyer à BizTalk Server. Cette opération inclut le message d’origine dans l’appel ainsi que 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 le message de réponse associé à supprimer.

    Lorsque vous appelez Resubmit ou Suspend sur un message, vous souhaiterez peut-être conserver les valeurs de certaines propriétés de contexte de message. Pour ce faire, enregistrez des valeurs de propriété 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 dans lequel les informations sont stocké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>  

Cette 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 de ce code :

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");