EDI 일괄 처리의 알려진 문제
이 항목에서는 BizTalk Server 일괄 처리와 관련된 알려진 문제에 대해 설명합니다.
하위 문서 주석이 예로 설정되어 있어도 하위 문서 분할이 수행되지 않음
증상
HIPAA 교환에 대한 HIPAA 스키마에서 subdocument_creation_break 주석이 "예"로 설정되어 있지만 HIPAA 교환이 하위 문서로 분할되지 않았습니다.
가능한 원인
보내는 당사자에 대한 인바운드 일괄 처리 옵션이 "교환 유지"로 설정되었습니다. HIPAA 스키마 내의 subdocument_creation_break 주석이 "예"로 설정되어 있더라도 HIPAA 문서는 하위 문서로 분할되지 않습니다.
subdocument_break 주석이 "예"로 설정되어 있지만 subdocument_creation_break 주석이 “예”로 설정되지 않았습니다.
해결 방법
송신 당사자에 대한 EDI 속성 대화 상자의 유효성 검사 및 ACK 생성 설정 페이지에서 인바운드 일괄 처리 옵션 속성을 트랜잭션 집합으로 교환 분할 - 오류 시 트랜잭션 집합 일시 중단 또는 트랜잭션 집합으로 교환 분할 – 오류 발생 시 교환 일시 중단으로 설정합니다.
subdocument_creation_break 주석이 "예"로 설정되지 않는 한 HIPAA 문서는 하위 문서로 분할되지 않습니다.
일괄 처리 오케스트레이션이 활성화되는 동안 일괄 처리 구성 설정이 변경되면 일괄 처리의 유효성 검사가 실패할 수 있음
일괄 처리 오케스트레이션이 일괄 처리를 수행하는 동안 일괄 처리 구성 설정을 변경하면 해당 일괄 처리에 대해 새 구성 설정이 선택되지 않습니다. 이로 인해 송신 파이프라인에서 유효성 검사 오류가 발생할 수 있습니다.
이 설정은 EPI 속성 대화 상자의 일괄 처리 페이지에 있습니다.
이 문제를 해결하려면 일괄 처리 오케스트레이션과 연결된 호스트 인스턴스를 다시 시작합니다. 이렇게 하면 일괄 처리 구성 설정에 대한 변경이 즉시 수행됩니다.
BatchControlMessageRecvLoc 수신 위치가 32비트 컴퓨터에서만 실행되거나 64비트 컴퓨터의 WOW에서만 실행될 수 있음
SQL 어댑터가 32비트 컴퓨터에서 작동하거나 64비트 컴퓨터의 WOW64 에뮬레이터에서 실행 중일 때에만 작동합니다. 따라서 설치 프로그램에서 설치하여 SQL 어댑터를 사용하는 BatchControlMessageRecvLoc 수신 위치는 32비트 컴퓨터에서 작동하거나 64비트 컴퓨터의 WOW에서 실행 중일 때에만 작동합니다. 이 수신 위치는 일괄 처리에 필요합니다.
64비트 컴퓨터의 WOW에서 BatchControlMessageRecvLoc 수신 위치를 실행 중일 경우 일괄 처리 오케스트레이션을 다른 호스트에서 실행해야 합니다. 수신 위치와 동일한 호스트에서 실행 중인 경우 일괄 처리 오케스트레이션은 WOW에서도 실행되며 64비트 컴퓨터에서 실행하여 얻는 이점은 없습니다.
일괄 처리가 의도하지 않은 송신 포트에 의해 선택될 수 있음
일괄 처리 오케스트레이션이 교환을 게시하면 ToBeBatched = False 및 DestinationPartyName = <PartyName>이라는 두 가지 속성이 승격됩니다. 이러한 속성 중 하나 또는 모두에 등록하는 송신 포트에서는 이러한 일괄 처리된 교환을 선택할 수 있습니다. 송신 포트가 선택하도록 의도한 이 일괄 처리된 교환을 선택하도록 송신 포트의 필터를 구성했는지 확인합니다.
일괄 처리 요소 수가 일괄 처리를 위한 필수 트랜잭션 집합 수보다 많을 경우 일괄 처리 릴리스가 표시되지 않을 수 있음
일괄 처리 릴리스 조건이 그룹 또는 교환당 트랜잭션 집합 수를 기반으로 하는 경우 일괄 처리 요소 수가 일괄 처리를 릴리스하는 데 필요한 트랜잭션 집합 수보다 많더라도 일괄 처리가 릴리스되지 않을 수 있습니다. 승인을 설정하고 일괄 처리에 이러한 승인을 추가하도록 일괄 처리 필터 조건을 설정하면 이러한 문제가 발생할 수 있습니다. 이 인스턴스에서 그룹(또는 교환)의 일괄 처리 요소 수가 그룹(또는 교환)당 트랜잭션 집합 수보다 많습니다. 해당 인스턴스에서 그룹(또는 교환)당 트랜잭션 집합 수가 일괄 처리 릴리스에 필요한 수보다 적은 경우 일괄 처리는 릴리스되지 않습니다. 그러나 동시에 일괄 처리 요소 수가 일괄 처리 릴리스에 필요한 트랜잭션 집합 수보다 많을 수 있습니다.
시작을 클릭했을 때 일괄 처리 요소가 저장되지 않음
증상
파티에 대한 일괄 처리 페이지에서 시작을 클릭했을 때 일괄 처리에 대해 수집된 메시지가 없습니다.
가능한 원인
시작을 클릭한 날짜/시간이 활성화 섹션에 입력한 날짜/시간보다 이전이었습니다. 따라서 오케스트레이션 인스턴스는 활성화되었지만 일괄 처리에 대해 수집된 메시지가 없습니다. 자세한 내용은 나가는 일괄 처리 구성을 참조하세요.
해결 방법
이 문제가 발생한 일괄 처리 구성의 일괄 처리 페이지에서 중지를 클릭합니다. 활성화를 즉시 시작으로 설정하거나 현재 시간보다 일찍 datetime을 입력한 다음 시작을 클릭합니다. 시작 날짜/시간을 현재 시간으로 다시 설정하라는 메시지가 표시되면 확인을 클릭합니다. BizTalk Server는 해당 시점에서 일괄 처리를 위해 메시지를 수집하기 시작합니다.
EDIFACT 일괄 처리에서 바이트 수가 사용된 문자 집합에 따라 달라질 수 있음
일부 EDIFACT 문자 집합에 있는 문자는 더블바이트 문자일 수 있으며, 반면에 다른 EDIFACT 문자 집합에 있는 경우 싱글바이트 문자일 수 있습니다. 이로 인해 교환에서 문자 수를 기반으로 일괄 처리를 위한 릴리스 조건을 설정할 경우 교환에서 바이트 수는 사용된 문자 집합에 따라 달라질 수 있습니다.
"" 및 "<&" 문자는 일괄 처리 봉투의 인코딩된 형식으로 표현되어야 합니다.
BizTalk Server 일괄 처리된 EDI 교환의 봉투 필드를 만들 때 리터럴 형식의 다음 문자를 지원하지 않습니다. "" 및 "<&".
일괄 처리된 나가는 교환의 봉투(Envelope) 필드에서 이러한 문자를 리터럴로 사용하면 교환을 serialize하기 위해 EdiSend 파이프라인을 사용하는 경우 메시지가 일시 중단됩니다.
일괄 처리의 봉투(Envelope) 필드에서 이러한 문자 중 하나를 사용하려는 경우 BizTalk 관리자에서 봉투(Envelope) 필드를 구성할 때 다음 표에서 인코딩된 해당 값을 사용할 수 있습니다.
문자 | Encoding |
---|---|
< | < |
& | & |
이렇게 인코딩된 양식 중 하나를 사용하면 BizTalk Server가 BizTalk Server 관리 콘솔의 PAM(파트너 규약 관리자) 화면에서 길이 제한에 대해 필드의 유효성을 검사할 때 인코딩 양식으로 된 각 문자는 개별 문자로 간주됩니다. 예를 들어 인코딩 "<"은 일괄 처리된 EDI 교환에서 단일 문자 "<"를 나타내더라도 BizTalk Server 특정 필드의 길이 제한에 대해 유효성을 검사할 때 이를 4자로 계산합니다. 이 문제는 PAM에만 해당하며 EDI 어셈블러에는 해당하지 않습니다.
업그레이드 일괄 처리 오케스트레이션 실행 중 예외가 발생함
증상
들어오는 문서에 EDI.DestinationPartyId 속성을 설정하는 사용자 지정 파이프라인 구성 요소를 사용할 때 업그레이드 일괄 처리 오케스트레이션 실행 중 예외가 발생했음을 설명하는 응용 프로그램 이벤트 로그 오류가 수신될 수 있습니다.
가능한 원인
ErrorMessage = “일괄 처리를 찾을 수 없음”이면 이 오류는 업그레이드 일괄 처리 오케스트레이션이 들어오는 문서에 대한 일괄 처리를 식별할 수 없음을 나타냅니다.
해결 방법
업그레이드 일괄 처리 오케스트레이션은 EDI.DestinationPartyId를 사용하여 파티 이름을 검색합니다. 그러면 오케스트레이션에서 해당 파티 이름 EDI.EncodingType을 사용하는 문자열과 “Default” 문자열을 구성한 다음 일치하는 일괄 처리 이름으로 일괄 처리 구성을 검색합니다. 이 이름으로 존재하는 일괄 처리 구성이 없는 경우 이 오류는 응용 프로그램 이벤트 로그에 기록되며 오케스트레이션 인스턴스가 일시 중단됩니다.
참고
예를 들어 파티 이름이 Contoso이고 EDI.EncodingType이 X12인 경우 오케스트레이션은 이름이 ‘ContosoX12Default’인 일괄 처리를 검색합니다.
이 문제를 해결하려면 업그레이드 일괄 처리 오케스트레이션에 의해 구성된 문자열과 이름이 일치하는 일괄 처리가 있는지 확인합니다.
EDI.ToBeBatched = True로 표시된 메시지와 EDI.DestinationParties가 일시 중단됨
증상
EDI.ToBeBatched = True를 설정하고 EDI.DestinationParties를 파티 ID 목록으로 설정하여 일괄 처리에 필요한 메시지를 표시하는 사용자 지정 파이프라인 구성 요소를 사용하는 경우 등록자가 없음을 알리는 라우팅 오류로 인해 메시지가 일시 중단됩니다.
가능한 원인
이전 버전의 BizTalk Server 여러 일괄 처리 구성에서 메시지를 처리해야 하는 경우 EDI를 설정합니다. 파티 ID의 공간으로 구분된 목록에 대한 DestinationParties 속성입니다. 라우팅 오케스트레이션은 EDI.ToBeBatched = True 및 EDI.DestinationParties 속성이 포함된 메시지에 등록하고 EDI.DestinationParties 속성에 포함된 파티 ID 목록을 사용하여 각 ID에 대한 메시지를 만들고 메시지를 일괄 처리 오케스트레이션에 전달했습니다. 각 파티 구성에는 일괄 처리 구성이 하나만 포함될 수 있었으므로 파티 ID를 사용하여 일괄 처리를 확인했습니다.
BizTalk Server 각 당사자는 여러 일괄 처리 구성을 가질 수 있으므로 더 이상 pary ID만 사용하여 사용할 일괄 처리 구성을 결정하는 데 충분하지 않습니다. 메시지를 여러 개의 일괄 처리 구성으로 처리해야 함을 나타내려면 메시지를 보내야 하는, 공백으로 구분된 일괄 처리 ID 목록으로 설정된 EDI.BatchIDs 속성이 메시지에 있어야 합니다.
참고
EDI.DestinationPartyId 속성을 사용하는 단일 파티 ID로만 표시된 메시지를 처리할 경우 메시지는 업그레이드 일괄 처리 오케스트레이션에서 처리됩니다. 자세한 내용은 Batched EDI 교환 어셈블을 참조하세요.
해결 방법
사용자 지정 파이프라인 구성 요소가 EDI.DestinationParties 대신 EDI.BatchIDs 속성을 설정하므로 사용자 지정 파이프라인 구성 요소를 업그레이드합니다. 특정 일괄 처리에 대한 일괄 처리 ID는 각 파티에 대한 EDI 속성의 일괄 처리 설정 페이지에 있습니다.
참고
BatchMarker 파이프라인 구성 요소가 일괄 처리에 대한 메시지를 표시하는 데 사용되는 경우 이 문제는 발생하지 않습니다.
일괄 처리 필터 새로 고침 시간 제한이 15분으로 하드 코딩됨
일괄 처리 필터 조건을 수정할 경우 변경 사항을 적용하는 데 15분이 걸립니다. 이 새로 고침 간격은 수정할 수 없습니다. 필터가 즉시 적용되도록 하려면 BizTalk Server 호스트 프로세스를 다시 시작합니다.
Catch되지 않은 예외를 보고한 이후 RoutingOrchestration이 일시 중단됨
증상
여러 개의 일괄 처리 구성으로 전송하는 문서를 처리할 경우 XLANG/s에서 Catch되지 않은 예외로 인해 Microsoft.BizTalk.Edi.RoutingOrchestration.BatchRoutingService가 실패했음을 나타내는 응용 프로그램 이벤트 로그 오류가 수신될 수 있습니다.
가능한 원인
이 오류는 RoutingOrchestration에서 메시지를 BatchingOrchestration으로 보냈지만 BatchingOrchestration 인스턴스가 시작되지 않으면 발생할 수 있습니다.
해결 방법
일괄 처리할 문서를 전송하기 전에 BatchingOrchestration 인스턴스가 실행 중인지 확인합니다.
다양한 활성 일괄 처리로 인해 BizTalkMsgBoxDb 로그 파일 크기가 커질 수 있음
증상
여러 개의 일괄 처리를 시작한 후에 BizTalk 메시지 상자 데이터베이스(BizTalkMsgBoxDb)에 대한 트랜잭션 로그의 크기가 증가할 수 있습니다.
가능한 원인
일괄 처리 릴리스 간격을 줄어들게 하는 릴리스 조건으로 많은 일괄 처리가 시작되면 이 문제가 발생할 수 있습니다(예: 1분마다 릴리스하도록 예약된 일괄 처리).
일괄 처리를 시작할 때 만들어지는 배치 오케스트레이션 인스턴스는 일괄 처리를 릴리스한 후 데이터베이스에 지속되는 오래 실행되는 프로세스입니다. 오케스트레이션이 지속될 때마다 트랜잭션 로그는 지속성에 관련된 트랜잭션으로 인해 크기가 커집니다.
참고
일괄 처리 오케스트레이션은 지속되는 동안 트랜잭션 로그가 약 30kb까지 증가합니다.
해결 방법
이 문제를 해결하려면 릴리스 조건을 수정하여 일괄 처리 릴리스 사이의 시간을 늘립니다. 자세한 내용은 일괄 처리 구성(X12)을 참조하세요.