다음을 통해 공유


들어오는 AS2 메시지 처리

AS2 수신 파이프라인은 AS2를 통해 들어오는 메시지를 처리합니다. AS2EdiReceive 수신 파이프라인은 EDI 디스어셈블러를 사용하여 EDI로 인코딩된 메시지를 처리하고, AS2Receive 수신 파이프라인은 AS2 디스어셈블러를 사용하여 EDI로 인코딩되지 않은 메시지를 처리합니다. 두 파이프라인은 AS2 메시지의 페이로드를 처리하고 MDN을 다르게 생성합니다. 그러나 두 수신 파이프라인은 AS2 디코더를 사용하여 AS2 메시지를 처리합니다.

AS2EdiReceivePipeline은 EDI 페이로드를 사용하는 AS2 메시지를 처리할 때 EDI를 처리하기 전에 수신 메시지의 AS2 처리를 완료합니다. AS2 응답에 의해 연결이 닫히기 때문에 파이프라인은 AS2 메시지의 EDI 페이로드에 대해 EDI 승인을 생성하는 경우 이 EDI 승인을 비동기적으로 반환해야 합니다.

수신 포트

HTTP 수신 포트는 EDI 페이로드 또는 EDI가 아닌 페이로드를 사용하는 AS2 메시지를 수신하는 데 사용됩니다. MDN이 동기적으로 반환되어야 하는 경우 수신 포트는 요청-응답 포트여야 합니다.

MDN은 동기적으로 반환되거나 비동기적으로 반환될 수 있습니다. 이는 규약 속성 대화 상자의 단방향 AS2 규약 탭에서 유효성 검사에 규약 설정 사용 및 메시지 헤더 속성 대신 MDN을 선택하지 않는 한 AS2 메시지의 처리 알림 대상 헤더에 의해 결정됩니다. 속성을 선택하면 MDN이 반환되는 방식은 규약 속성 대화 상자의 단방향 AS2 규약 탭에 있는 보낸 사람 MDN 설정 페이지의 요청 비동기 MDN 속성에 의해 결정됩니다. 자세한 내용은 AS2 메시지MDN 메시지를 참조하세요.

MDN이 동기적으로 반환되는 경우 MDN은 양방향 수신 위치의 송신 포트를 통해 반환됩니다. 이 MDN은 HTTP 응답으로 사용됩니다. 예를 들어 200OK는 메시지의 성공적인 수신을 나타냅니다.

MDN이 비동기적으로 반환되는 경우에는 MDN이 별도의 송신 포트를 통해 반환되어야 합니다. 동적 송신 포트가 사용되는 경우 MDN은 Disposition-notification-to 헤더에 포함된 주소로 전송됩니다.

참고

AS2 메시지를 수신하는 데 사용되는 양방향 수신 포트를 MDN 메시지를 수신하는 데 사용해서는 안 됩니다. MDN 메시지는 정적 단방향 수신 포트에서 수신되어야 합니다. 비동기적으로 반환된 MDN에 대해 요청/응답 수신 포트를 사용하면 들어오는 MDN에 대한 응답으로 200OK 메시지가 반환되지 않습니다. 따라서 MDN 전송이 불필요하게 다시 시도됩니다.

AS2 수신 파이프라인의 작동 방식

AS2 수신 파이프라인이 들어오는 AS2 메시지를 처리하기 위해 수행하는 단계는 다음과 같습니다.

  • 메시지의 AS2 헤더에 있는 AS2-From 값을 규약 속성 대화 상자의 단방향 AS2 규약 탭의 식별자 페이지에 있는 AS2-From 목록 값과 일치시켜 보내는 당사자를 결정합니다. 이 방법이 실패하면 들어오는 메시지에 대해 설정된 AS2-From 컨텍스트 속성이 파티의 이름과 일치하는지 검사하여 송신 파티를 확인하려고 시도합니다. 일치 항목이 발견되고 규약 속성 대화 상자의 단방향 AS2 규약 탭에서 메시지 헤더 속성 대신 유효성 검사 및 MDN규약 사용 설정을 선택한 경우 BizTalk Server AS2 메시지를 처리하기 위해 당사자의 규약과 연결된 AS2 속성을 사용합니다. 이 속성이 선택되지 않은 경우 수신 파이프라인은 들어오는 메시지의 AS2 헤더 태그를 사용합니다. 규약을 찾을 수 없으면 수신 파이프라인은 처리를 중단하고 메시지를 일시 중단한 다음 예외를 발생시킵니다.

    참고

    메시지 헤더 속성 대신 유효성 검사 및 MDN에 규약 설정을 사용하면 들어오는 메시지에 서명, 암호화 및 압축 속성이 있는지 확인하고(단방향 계약의 유효성 검사 탭에서 해당 속성이 규약에 지정된 경우) 메시지를 일시 중단하고 오류를 게시할 수 있습니다. 이러한 변경 내용은 송신 파티의 규약과 협상되어야 합니다. 자세한 내용은 AS2 속성 구성을 참조하세요.

  • 송신 파티의 규약이 확인되었지만 수신 파이프라인이 AS2 메시지를 처리하려고 시도할 때 오류가 발생한 경우 수신 파이프라인은 AS2 메시지의 컨텍스트 속성 MessageDestination을 SuspendQueue로 설정합니다. 그러면 수신 파이프라인은 MessageBox에서 메시지를 일시 중단합니다. 수신 파이프라인은 컨텍스트 속성도 True로 설정합니다 EdiIntAS.IsAS2FailedMessage . 규약 속성 대화 상자의 단방향 AS2 규약 탭에 있는 보낸 사람 MDN 설정 페이지에서 MDN요청을 설정하여 MDN을 사용하도록 설정하면 파이프라인은 적절한 MDN을 보낸 사람에게 반환합니다. MDN이 요청된 경우 수신 파이프라인은 항상 MDN을 반환하려고 시도합니다.

  • 규약 속성 대화 상자의 단방향 AS2 규약 탭의 유효성 검사 페이지에서 메시지 내 중복 메시지 확인 옵션이 선택되어 있는지 여부를 확인합니다. 중복 메시지는 인바운드 메시지의 AS2-From, AS2-To 및 Message-ID 값이 이전에 수신한 메시지의 값과 일치하는지 검사하여 검색됩니다. 세 값이 모두 일치하면 수신 파이프라인은 컨텍스트 속성의 EdiIntAs.IsAS2MessageDuplicate 값을 true로 설정합니다. 유효성 검사 페이지에서 중복 메시지 일시 중단 옵션도 선택하면 메시지가 일시 중단되고 오류가 기록됩니다.

  • 각 첨부 파일의 파일 이름이 있으면 검색하고 이를 컨텍스트 속성으로 승격합니다.

  • 단방향 AS2 규약 속성에서 설정된 경우 통신 형식으로 메시지를 복사하여 NRR(부인 방지 수신) 데이터베이스에 저장합니다.

  • MIME 처리를 수행합니다. 이때 헤더 태그에 따라 서명을 확인하고 메시지를 해독하게 됩니다.

  • 수신 메시지가 압축된 경우 압축을 해제합니다.

  • HTTP 응답을 생성합니다. 이 응답은 동기식 요청-응답 모드에서 MDN에 추가되고 비동기 모드에서는 독립적 응답으로 전송됩니다.

  • 요청된 경우 MDN 응답을 생성합니다. 메시지 헤더 속성 대신 유효성 검사 및 MDN에 규약 사용 설정 이 설정된 경우 또는 컨텍스트 속성에서 해당 속성이 설정되지 않은 경우 파이프라인은 규약 속성에 따라 MDN을 생성합니다. 들어오는 메시지의 구성 설정과 헤더가 일치하지 않는 경우 수신 파이프라인은 부정 MDN을 생성합니다.

  • 메시지가 EDI로 인코딩되었고 승인이 설정된 경우 AS2EdiReceive 수신 파이프라인의 EDI 디스어셈블러는 EDI 승인을 생성합니다. 수신 파이프라인은 EDI 승인을 MessageBox에 라우팅합니다. 그러면 동적 송신 포트는 MessageBox에서 EDI 승인을 선택하여 비동기적으로 보냅니다. MDN 또는 HTTP 응답이 동기적으로 전송되기 때문에 EDI 승인은 AS2 전송을 통해 항상 비동기적으로 전송됩니다.

  • MDN을 복사하고 단방향 AS2 규약 속성에서 설정된 경우 NRR(부인 방지 수신) 데이터베이스에 복사본을 저장합니다.

  • 디코딩된 메시지를 복사하고 단방향 AS2 규약 속성에서 설정된 경우 NRR(부인 방지 수신) 데이터베이스에 복사본을 저장합니다.

    AS2 오류가 발생하면 수신 메시지가 더 이상 처리되지 않습니다. 그러나 수신 파이프라인은 여전히 MDN 응답을 생성합니다.

참고 항목

BizTalk Server에서 AS2 메시지를 받는 방법
AS2 메시지
MDN 메시지