BizTalk 서버의 설정과 상태 확인을 위한 도구 (MessageBox Viewer)

이미 BizTalk 서버를 이용해서 개발하시거나 관리하시는 분들은 잘 아시고 계실 것으로 압니다만 MessageBoxViewer는 BizTalk서버의 실행 상태나 설정등을 한눈에 알아 볼 수 있도록 해주는 훌륭한 도구 입니다.

 

메시지박스 뷰어는 https://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx 에서 다운로드 하실 수 있습니다.

 

사용법은 아주 간단합니다. 물론 항상 BizTalk 서버가 실행 중인 시스템에서 실행해 주셔야 합니다.

 

아래 그림과 같이 압축 파일을 푸신 후 GUI 펄더내의 MsgBoxViewer.exe파일을 실행하시면 됩니다. 만일 GUI Tool을 사용할 수 없는 경우 (화면의 크기등에 의해서) Console 폴더 아래의 BtsDBCollect.exe를 실행하셔도 됩니다.

 

clip_image001

 

실행이 되면 나타나는 아래와 같은 화면에서 표시된 "Start to Collect" 버튼을 클릭해 주시고 수집이 완료되면 EXE파일이 있는 폴더에 생성된 HTML 파일을 보내주시면 됩니다. HTML 파일은 UTF-8로 저장이 되어 있습니다. 리포트에서 이상한 메시지가 나타나면 HTML Browser의 Encoding을 변경해 보시기 바랍니다.

 

clip_image003

 

실행이 완료되면 아래 그림과 같이 DialogBox가 표시 됩니다.

image

 

물론 바로 HTML 리포트를 보셔도 그냥 Cancel 하셔도 됩니다.

image

 

대부분의 경우 Default 설정을 따라서 수집하는 것으로 많은 자료가 수집이 됩니다. 하지만 SQL Connection이 늦은 경우나 BizTalk 이 사용하는 DB의 부하등으로 Query의 수행시간이 긴 경우는 별도의 설정을 해 줘야 합니다.

아래 Option 부분만을 확대한 그림을 보시면 일단 BizTalk 서버의 설정을 통해서 DB 서버의 이름과 MgmtDB(Management DB) 정도등이 기본적으로 채워져 있습니다.

일단 초기 실행에서 많은 자료들이 채워지지 않은 경우는 일단 SQL Query Timeout 내지는 WMI Timeout 이 문제가 될 수 있습니다. 기본적으로 30초 정도면 문제가 없겠습니다만 서버의 부하나 DB서버의 문제등으로 인해서 이 값으로는 원하는 결과를 얻을 수 없는 경우가 많습니다.

그럴 경우 이 값을 5분에서 10분 정도로 설정해 주시면 됩니다. Query Timeout의 경우는 300을, WMI Timeout의 경우는 00:05:00으로 설정해 주시면 됩니다.

서버의 부하나 문제 상태 확인은 기본적으로 성능 모니터를 이용하셔도 됩니다만 MessageBox Viewer를 이용하셔서도 비슷한 효과를 볼 수 있습니다. 아래쪽에 보시면 Collect Each "58" Minute(s) 란을 Check 해주시면 됩니다. 다만 10분 이하의 시간은 의미가 없거나 서버에 부하를 줄 수 있습니다. 주의 하셔야 합니다.

 

image

 

최근에 업데이트된 MessageBoxViewer의 기능들의 열람은 아래의 그림과 같은 Optional Queries를 참고해 보시면 됩니다.

BizTalk 서버의 성능이 과도한 Request나 메모리 사용이 아닌 DB 서버단에서 발생하는 Locking등과 같은 문제일 경우 아래의 그림에서 처럼 SP_WHO3를 지원해 주기 때문에 어느 정도 (물론 정확한 타이밍에 수집이 되어야겠지요) 확인이 가능합니다. SQL 서버의 성능과 많이 사용 되는 Query등도 확인이 가능 합니다.

 

image

 

SQL 이외에 눈에 띠는 기능으로 서버에 설치된 BizTalk 관련 Hotfix나 CLR Thread Pool, Registry, BizTalk Configuration 등의 설정 성태를 알려주는 부분과 성능 카운터 및 BizTalk 관련 주요 Event를 알려주는 기능을 지원 합니다.

 

image

 

아래 그림을 보시면 BizTalk 성능 카운터를 통해서 MessageAgent의 성능 문제 발생 시점의 관련 내용을 보여주고 있습니다.

붉게 표시된 부분은 Message Delivery와 Publish관련 Throttling이 발생하고 있는 상황으로 BizTalk의 응답이 현재하게 저하된 상태에서 수집된 자료 입니다.

Throttling의 원인은 프로세스 메모리 상태에 의해서 발생하고 있었습니다.

 

image

 

Host Throttling Performance Counters

https://msdn.microsoft.com/en-us/library/aa578302.aspx

Message delivery throttling state

A flag indicating whether the system is throttling message delivery (affecting XLANG message processing and outbound transports).

  • 0: Not throttling
  • 1: Throttling due to imbalanced message delivery rate (input rate exceeds output rate)
  • 3: Throttling due to high in-process message count
  • 4: Throttling due to process memory pressure
  • 5: Throttling due to system memory pressure
  • 9: Throttling due to high thread count
  • 10: Throttling due to user override on delivery