송신 어댑터 작업
송신 어댑터를 사용하여 다음 작업을 수행할 수 있습니다.
다시 제출: void Resubmit(IBaseMessage msg, DateTime timeStamp). 메시지의 전송이 실패한 후 어댑터에서 적절한 시기에 메시지를 다시 전송합니다. 이 호출은 각 메시지를 기준으로 수행됩니다. 메시지 일괄 처리가 성공적으로 제출되지 않은 경우 어댑터는 실패의 원인이 되는 메시지를 확인하고 일괄 처리가 실패하지 않은 메시지를 다시 제출해야 합니다. 이 항목의 끝에는 다시 제출을 호출할 때 메시지 컨텍스트 속성 값을 유지하는 방법에 대한 정보가 있습니다.
다음 전송: void MoveToNextTransport(IBaseMessage msg)로 이동합니다. 송신 작업 중 메시지가 실패하고 재시도 횟수를 모두 시도한 경우 어댑터가 재전송을 위해 구성된 다음 전송으로 메시지를 보낼 수 있습니다.
일시 중단: void MoveToSuspendQ(IBaseMessage msg). 추가 백업 전송을 구성하지 않은 경우 어댑터가 실패한 송신 메시지를 일시 중단된 큐로 이동합니다. 이 항목의 끝에는 Suspend를 호출할 때 메시지 컨텍스트 속성 값을 유지하는 방법에 대한 정보가 있습니다.
삭제: void DeleteMessage(IBaseMessage msg). BizTalk Server에서 메시지 전송 성공을 알리면 어댑터가 메시지를 삭제합니다. 메시지가 삭제되면 메시지와 함께 어댑터가 완료되었음을 BizTalk Server에 알려 줍니다. 일반적으로 SubmitResponse 작업은 연결된 삭제 작업과 동일한 일괄 처리로 수행됩니다.
응답 제출: void SubmitResponseMessage(IBaseMessage solicitMsgSent, IBaseMessage responseMsgToSubmit). 어댑터가 일괄 처리에 대한 응답을 다시 BizTalk Server로 전송합니다. 이 작업에는 응답과 함께 원본 메시지가 호출에 포함되어 있어 BizTalk Server가 이들의 상관 관계를 지정할 수 있습니다.
취소 응답: void CancelResponseMessages(string correlationToken). 일괄 처리가 제출되기 전에 응답 메시지 보내기를 취소해야 하는 경우 CancelResponseMessages 메서드가 사용되어 관련 응답 메시지를 삭제할 상관 관계 토큰을 전달합니다.
메시지 에서 다시 제출 또는 일시 중단 을 호출할 때 특정 메시지 컨텍스트 속성의 값을 유지할 수 있습니다. 이 작업은 속성 값을 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");