다음을 통해 공유


엔진 지속성 및 내구성

이 섹션에서는 BizTalk Server에서 SQL Server를 통해 디스크에 프로세스 상태를 유지하여 느슨하게 연결된 비즈니스 프로세스를 안정적으로 통합하는 방법에 대해 설명합니다. 시스템에서는 일정 기간 동안 상태를 유지하고 트랜잭션을 활용하여 하드웨어 또는 소프트웨어에 장애가 발생한 경우에도 프로세스 상태가 손실되지 않도록 보장합니다. 이를 시스템 지속성이라고 합니다.

느슨하게 연결된 비즈니스 프로세스 관리

하나의 논리 비즈니스 프로세스를 수행하기 위해 기존 시스템을 통합하려면 기존 시스템 외부에서 프로세스 상태를 관리해야 합니다. 비즈니스 프로세스가 장기적으로 실행되는지, 아니면 단기적으로 실행되는지에 관계없이 서로 밀접하게 연결되는 시스템으로 인해 사용자 지정 통신 경로가 폭주하는 것을 막기 위해서는 프로세스 상태를 개별적으로 유지 관리해야 합니다.

비즈니스 프로세스가 업무 중심 프로세스인 경우에는 비즈니스 프로세스 인스턴스의 실행 상태가 안정적이어야 합니다. 비즈니스 프로세스의 안정성 및 지속성을 위해 BizTalk에서는 SQL Server 트랜잭션을 활용하여 프로세스 상태 및 비즈니스 데이터를 MessageBox 데이터베이스라는 데이터베이스의 디스크에 유지합니다. MessageBox 데이터베이스에 대한 자세한 내용은 MessageBox 데이터베이스를 참조하세요.

BizTalk Server 가장 간단한 비즈니스 프로세스 인스턴스(예: 오케스트레이션 인스턴스)를 제외한 모든 메시지와 모든 메시지는 처리하는 동안 MessageBox 데이터베이스에 한 번 이상 유지됩니다.

지속성 및 유지 가능성

BizTalk Server 모든 메시지와 대부분의 오케스트레이션을 유지한다는 사실은 지속 가능한 성능이란 무엇인가요? MessageBox 데이터베이스에 메시지가 도착하면 대기 중인 구독자(예: 오케스트레이션 및 송신 포트)로 라우팅되고, 구독자가 메시지를 선택하고 처리할 때까지 대기하거나 메시지 상자 SQL 테이블에 게시됩니다. 도착하는 일부 메시지는 새 등록자 인스턴스를 활성화합니다. 도착하는 다른 메시지는 상호 연관된 오케스트레이션과 같이 이미 실행 중인 등록자의 대기 인스턴스로 상관 관계를 통해 라우팅됩니다.

상호 연관된 오케스트레이션에서 계속 처리하도록 도착하는 상호 연관 메시지는 차단되지 않은 채로 유지되어야 합니다. 이를 위해 BizTalk에서는 과부하가 발생하더라도 메시지(활성 및 상호 연관 메시지)를 계속 수신하여 상호 연관된 메시지를 기다리는 등록자가 처리를 완료하고 더 많은 프로세스를 실행할 수 있도록 최선을 다하고 있습니다. 따라서 메시지가 MessageBox 데이터베이스에서 처리되고 제거되는 것보다 더 빨리 수신되므로 메시지 백로그가 구축됩니다. 저장 후 전달 기술의 일환으로 BizTalk에서 이러한 유형의 버퍼링을 일반적으로 제공하지만 수신 속도가 무한정 계속해서 처리 속도보다 빨라지면 백로그가 커질 수 있습니다.

BizTalk Server에서 수신하거나 작성하는 모든 메시지는 변경할 수 없습니다. 즉, 한 번 수신되거나 작성된 메시지의 내용은 변경할 수 없습니다. 또한 수신된 메시지에 등록자가 여러 명 있을 수 있습니다. 특정 메시지의 각 등록자는 해당 메시지의 동일한 복사본 하나를 참조합니다. 이 접근 방법을 사용하면 저장소가 최소화되지만 각 메시지에 대한 참조 수를 유지하고 유지 관리를 정기적으로 수행하여 참조 수가 0인 메시지는 제거해야 합니다.

MessageBox 데이터베이스에 충분히 큰 백로그를 구축할 수 있는 경우 각 MessageBox 데이터베이스에 대한 SQL 작업 집합으로 구현되는 데이터베이스의 유지 관리 프로세스가 지연되며 이를 다시 시도할 수 없으면 결국 디스크 공간이 부족해집니다. 이러한 상황이 발생하지 않도록 하기 위해 BizTalk Server는 MessageBox 데이터베이스 백로그가 일부 사용자 구성 가능 수준에 도달할 경우 메시지 수신 속도를 낮추는 조정 메커니즘을 제공합니다. 제한에 대한 자세한 내용은 호스트 제한을 통해 리소스 사용량 최적화를 참조하세요.

유지 가능성에 필요한 모든 활동 및 프로세스가 제공되는 경우 시간이 경과해도 유지 가능성을 보장하기 위해서는 무엇보다도 백로그가 무한정 늘어나지 않도록 설정해야 합니다. 즉, 시간이 지남에 따라 최대 처리량의 최고 수준과 최저 수준 간에 균형이 유지되어 MessageBox 데이터베이스에서 지속적이고 관리 가능한 평균 백로그를 유지 관리할 수 있어야 합니다. 백로그의 기본 측정값은 스풀 테이블의 깊이로, BizTalk:Message Box:General Counters:Spool Size라는 BizTalk Server 성능 카운터로 노출됩니다. 이 성능 카운터에 대한 자세한 내용은 메시지 상자 성능 카운터를 참조하세요.

스풀 크기 및 기타 카운터를 사용하여 시스템에서 유지할 수 있는 최대 처리량을 결정하는 방법에 대한 자세한 내용은 지속 가능한 최대 엔진 처리량 측정을 참조하세요.

권장 사항

BizTalk Server 모든 메시지와 대부분의 오케스트레이션을 유지하며, 확인되지 않은 상태로 두고 디스크 공간 부족과 같은 문제를 초래할 수 있는 메시지의 백로그를 개발할 수 있습니다. 백로그의 기본 측정값은 BizTalk:Message Box:General Counters:Spool Size라는 성능 카운터로 노출되는 messagebox 스풀 테이블의 깊이입니다.

유지 가능한 처리량과 관련하여 스풀 크기는 시간이 경과해도 안정적인 평균을 유지해야 합니다. 즉, 스풀은 확인되지 않은 채 계속해서 무한정 증가할 수 없습니다. 지속 가능한 최대 엔진 처리량 측정에서 이 동작에 대해 자세히 설명하고 스풀 크기 및 기타 성능 지표를 활용하는 시스템에서 유지할 수 있는 최대 처리량을 결정하는 방법을 제공합니다.

참고 항목

유지 가능한 최대 엔진 처리량 측정
유지 가능한 성능이란?
성능 팁 및 트릭
Messagebox 성능 카운터