Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sendeadapter können die folgenden Vorgänge ausführen:
Erneute Übermittlung: void Resubmit(IBaseMessage msg, DateTime timeStamp). Nachdem bei einer Nachricht ein Übertragungsfehler aufgetreten ist, übermittelt ein Adapter ihn bei Bedarf erneut. Dies wird pro Nachricht aufgerufen. Wenn ein Batch von Nachrichten nicht erfolgreich gesendet wurde, muss der Adapter die Nachrichten ermitteln, die den Fehler verursachen, und die Nachrichten erneut übermitteln, die nicht dazu führen, dass der Batch in separaten Aufrufen zum Erneut senden fehlschlägt. Es gibt Informationen am Ende dieses Themas darüber, wie Nachrichtenkontext-Eigenschaftswerte beibehalten werden, wenn Sie Resubmit aufrufen.
Zum nächsten Transport wechseln: void MoveToNextTransport(IBaseMessage msg). Wenn eine Nachricht während eines Sendevorgangs fehlschlägt und deren Wiederholungsversuche erschöpft wurden, kann der Adapter die Nachricht an den nächsten konfigurierten Transport für die Erneute Übertragung senden.
Suspend: void MoveToSuspendQ(IBaseMessage msg). Der Adapter verschiebt eine fehlgeschlagene Sendenachricht in die Angehaltene Warteschlange, wenn kein zusätzlicher Sicherungstransport konfiguriert ist. Am Ende dieses Themas erfahren Sie, wie Werte der Nachrichtenkontexteigenschaft beim Aufrufen von Suspend beibehalten werden.
Delete: void DeleteMessage(IBaseMessage msg). Der Adapter löscht eine Nachricht, nachdem sie von BizTalk Server über die erfolgreiche Übertragung benachrichtigt wurde. Beim Löschen einer Nachricht wird BizTalk Server mitgeteilt, dass der Adapter mit der Nachricht fertig ist. Im Allgemeinen erfolgt der SubmitResponse-Vorgang im selben Batch wie der zugeordnete Löschvorgang .
Antwort senden: void SubmitResponseMessage(IBaseMessage solicitMsgSent, IBaseMessage responseMsgToSubmit). Der Adapter übermittelt eine Antwort an den Batch, die an den BizTalk Server zurückgesendet werden soll. Dieser Vorgang enthält die ursprüngliche Nachricht im Anruf zusammen mit der Antwort, damit BizTalk Server sie korrelieren kann.
Antwort abbrechen: void CancelResponseMessages(string correlationToken). Wenn das Senden einer Antwortnachricht abgebrochen werden muss, bevor der Batch gesendet wird, wird die CancelResponseMessages-Methode verwendet, und das Korrelationstoken für die zugeordnete Antwortnachricht wird gelöscht.
Wenn Sie "Erneut übermitteln" oder "Anhalten" bei einer Nachricht aufrufen, sollten Sie die Werte bestimmter Nachrichtenkontexteigenschaften beibehalten. Sie können dies tun, indem Sie Eigenschaftswerte im XML-Format speichern. Wenn die Nachricht erneut übermittelt oder angehalten wird, bleiben die entsprechenden Eigenschaften im Nachrichtenkontext verfügbar.
Die folgende XML-Zeichenfolge beschreibt das Format, in dem die Informationen gespeichert werden:
<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>
Diese XML-Zeichenfolge wird durch den folgenden Code generiert:
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;
}
Diese Zeichenfolge wird dann mithilfe dieses Codes im Nachrichtenkontext gespeichert:
Message.Context.Write("PropertiesToUpdate", "http://schemas.microsoft.com/BizTalk/2003/system-properties", GetPropsToUpdateXml(++retryAttempt));
Wenn die Nachricht erneut übermittelt wird, kann der Adapter diese Eigenschaft mithilfe der folgenden Codezeile lesen:
propValue = inmsg.Context.Read("RetryAttempts", "http://schemas.microsoft.com/BizTalk/2005/test-properties");