Aaron H. Kim Fearless Integration Maniac

송신 포트에서 Retry를 시도하면 Pipeline도 다시 태울까?

2007-05-29
Aaron Kim

BizTalk의 송신 포트는 Retry 횟수, 간격 등을 간편하게 조절할 수가 있습니다.
BizTalk에서 Target system으로 Message를 보냈는데 어떤 이유로 전송에 실패했을 경우,
지정된 Retry 횟수만큼, 지정된 간격으로 재시도를 하게 됩니다.

그렇다면 이 때, 송신 포트에 지정된 Pipeline도 다시 태울까요?

정답은 다시 태운다입니다.

이유는 송신이 실패하게 되면 송신전 BizTalk 엔진이 MessageBox Db에 저장한 메시지를
끄집어와서 다시 시도를 하게 되는데

이 때 MessageBox에 저장되어 있는 메시지는 Pipeline을 통과하기 전의 원본 데이터입니다.

다음과 같이 생각하시면 됩니다.

  1. 송신전 MessageBox에 원본 데이터를 저장한다.
  2. 송신한다. (이 때 송신 파이프라인을 태워 Target System에 맞는 Message로 변환한다.)
  3. 송신 실패.
  4. 지정된 Retry 간격동안 기다렸다가 송신포트는 MessageBox로부터 자신이 subscribe한 메시지를 다시 받아온다.
  5. 재송신한다.
  6. 지정된 Retry 횟수만큼 위 과정을 반복..

위 내용을 이해하려면 BizTalk이 Stateless Server란 점과 Orchestration 내부에 존재하는 Persistent Point 및
BizTalk Messaging의 Publish & Subscribe 구조를 이해하셔야 합니다.
배경 지식에 대해서는 다음에 다시 다루도록 하겠습니다.


Similar Posts

Comments