다음을 통해 공유


어댑터 테스트 및 디버깅 방법

런타임 문제를 디버깅하려면 다양한 접근 방법을 취해야 합니다. 문제나 소프트웨어 버그가 발생한 원인을 알아내려면 소프트웨어 추적, 성능 카운터, 이벤트 로그 항목, WMI(Windows Management Instrumentation) 이벤트, 디버깅 소스 코드 등의 다양한 소스에서 데이터를 수집해야 합니다.

송신 및 수신 어댑터는 BizTalk 서비스의 주소 공간에서 실행되므로 어댑터를 디버깅하려면 디버거가 BtsNtSvc.exe 프로세스에 연결되어 있어야 합니다. 하지만 Isolated 수신 어댑터의 경우에는 어댑터를 호스트하는 프로세스에 디버거가 연결되어 있어야 합니다.

추적 코드로 어댑터 런타임 코드를 계측하여 문제 해결에 사용할 런타임 진단 정보를 캡처해야 합니다. 진단 정보를 캡처하는 작업은 Microsoft EIF(Enterprise Instrumentation Framework)를 사용하여 수행할 수 있습니다. 오류 조건만 추적하거나, 오류와 경고를 추적하거나, 오류, 경고 및 알림 문을 추적하는 등 다양한 심각도 수준으로 추적 문을 추가하는 것이 좋습니다. 복잡한 어댑터의 경우 각각 분리해서 추적해야 하는 하위 시스템이 포함되어 있을 수도 있습니다. 예를 들어 네트워크 하위 시스템과 핵심 하위 시스템이 있는 어댑터의 경우 모든 하위 시스템에 대해 추적을 설정하면 일부 시나리오에서는 지나치게 많은 "의미 없는 정보"가 생성될 수 있습니다.

속도와 값을 캡처하는 성능 카운터를 추가하여 어댑터의 런타임 동작에 대한 보다 자세한 정보를 구해야 합니다. 예를 들어 어댑터가 초당 메시지 전송 속도뿐만 아니라 종단점별 전송된 메시지 수를 측정하기 위한 성능 카운터를 게시할 수 있습니다.

일부 심각한 오류 시나리오에는 WMI 이벤트가 유용할 수도 있습니다. 예를 들어 WMI 이벤트를 실행하면 어댑터에 수신 위치가 종료될 정도의 심각한 오류가 발생한 경우 관리자가 해당 이벤트를 수신하여 적절한 조치를 취할 수 있습니다.

어댑터 테스트

BizTalk Server용 사용자 지정 어댑터를 개발할 때는 어댑터 품질이 엔터프라이즈 소프트웨어 수준은 되어야 합니다. 즉, 어댑터를 제공하기 전에 철저하게 테스트해야 합니다. 이 섹션에서는 어댑터를 테스트할 때 수행해야 할 작업을 간단하게 소개하며 자세한 정보는 제공하지 않습니다. 일반적으로 어댑터와 같은 런타임 코드 테스트는 기능 테스트, 스트레스 테스트 및 성능 테스트의 세 가지 광범위한 범주를 다루어야 합니다.

기능 테스트

positive 테스트 및 negative 테스트를 비롯하여 가능한 모든 방식으로 어댑터를 테스트해야 합니다. positive 테스트에는 다음을 비롯한 다양한 시나리오를 포함해야 합니다.

  • 메시지 수신

  • 메시지 전송

  • 동적 포트를 사용하여 메시지 전송

  • 수신 위치 해제

  • 구성 업데이트

  • 수신 및 송신 어댑터 모두에서 서비스 창이 올바르게 작동하는지 확인

  • 트랜잭션 어댑터의 트랜잭션 무결성 보장

    negative 테스트에는 다음을 비롯한 다양한 시나리오를 포함해야 합니다.

  • 잘못된 메시지 수신

  • 올바른 메시지와 잘못된 메시지가 혼합된 메시지 묶음 수신

  • 전송 실패

  • 재시도 성공

  • 재시도 실패 시 다음 전송으로 이동 성공

  • 다음 전송으로 이동 실패 시 메시지 일시 중단

  • 혼합된 메시지 묶음 전송

  • 데이터베이스 장애 조치(failover)

스트레스 테스트

어댑터는 런타임 구성 요소이므로 런타임 소프트웨어에 대한 엄격한 요구 사항을 만족해야 합니다. 일반적으로 스트레스 테스트는 일정 기간 동안 부하 상태에서 시나리오를 실행하여 수행합니다. 더 나아가 실패 테스트 사이에 스트레스가 높은 상태 및 스트레스가 낮은 상태에서 테스트를 수행하여 일정 기간 동안 부하 상태에서 어댑터가 실행되도록 해야 합니다.

즉, 어댑터를 경유하는 메시지 수로 인해 CPU 사용률이 80%에서 90%에 이르는 스트레스가 높은 상태에서 약 72시간 동안 어댑터를 실행합니다. 스트레스가 낮은 상태의 경우 CPU 사용률은 120시간 동안 30%에서 40% 정도입니다.

성능 테스트

어댑터를 개발할 때는 성능을 고려해야 하며, 출시하기 전에 어댑터 성능을 테스트해야 합니다. 성능이 업그레이드 및 확장되도록, 즉 컴퓨터를 추가할 때처럼 CPU를 추가하면 성능이 개선되도록 만들어야 합니다. 코드를 프로파일링하면 성능 병목 상태를 없애는 데 도움이 됩니다.