发送适配器操作

发送适配器可执行以下操作:

  • 重新提交:void 重新提交 (IBaseMessage msg,DateTime timeStamp) 。 消息发生传输失败后,适配器会在适当的时候重新提交消息。 该操作对每条消息调用一次。 如果一批消息未成功提交,适配器必须确定导致失败的消息,并在对 Resubmit 的单独调用中重新提交不会导致该批失败的消息。 本主题末尾提供了有关如何在调用 Resubmit 时保留消息上下文属性值的信息。

  • 移动到下一个传输:void MoveToNextTransport (IBaseMessage msg) 。 如果某个消息在发送操作中失败,并已重试了允许的最大尝试次数,则适配器会将该消息发送到配置的下一次传输,以便重新传输。

  • 暂停:void MoveToSuspendQ (IBaseMessage msg) 。 如果未配置其他备份传输,则适配器会将失败的发送消息移至挂起队列。 本主题末尾提供了有关如何在调用 Suspend 时保留消息上下文属性值的信息。

  • Delete: void DeleteMessage (IBaseMessage msg) 。 收到 BizTalk Server 关于消息传输成功的通知后,适配器会删除该消息。 删除消息的操作会通知 BizTalk Server 适配器已完成处理该消息。 通常, SubmitResponse 操作在与其关联的 删除 操作相同的批处理中完成。

  • 提交响应:void SubmitResponseMessage (IBaseMessage solicitMsgSent,IBaseMessage responseMsgToSubmit) 。 适配器向要发回至 BizTalk Server 的批提交响应。 此操作在调用中包括原始消息以及响应,以便 BizTalk Server 可以将它们关联起来。

  • 取消响应:void CancelResponseMessages (字符串 correlationToken) 。 如果需要在提交批处理之前取消发送响应消息,则使用 CancelResponseMessages 方法,为要删除的关联响应消息传递相关令牌。

    对消息调用 ResubmitSuspend 时,可能需要保留某些消息上下文属性的值。 这可以通过以 XML 格式保存属性值得以实现。 在重新提交或挂起消息时,消息上下文中仍可以使用相应的属性。

    以下 XML 字符串说明了存储信息的格式:

<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>  

此 XML 字符串由以下代码生成:

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;  
}  

然后使用以下代码将此字符串保存到消息上下文中:

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

重新提交消息时,适配器可以通过使用以下代码行读取此属性:

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