구독 처리

이 항목에서는 구독 처리, 배달된 보고서의 특징 및 구독 트리거에 대한 정보를 제공합니다.

구독 처리 개요

Reporting Services에는 보고서의 일정을 예약하고 보고서를 사용자에게 배달하는 기능을 제공하는 일정 예약 및 배달 프로세서가 포함되어 있습니다. 보고서 서버는 계속해서 이벤트를 모니터링하며 여기에 응답합니다. 구독에 대해 정의된 조건과 일치하는 이벤트가 발생하면 보고서 서버는 해당 구독을 읽고 보고서 처리 및 배달 방법을 결정합니다. 보고서 서버는 구독에 지정된 배달 확장 프로그램을 요청합니다. 배달 확장 프로그램이 실행되면 보고서 서버는 구독으로부터 배달 정보를 추출한 후 처리를 위해 배달 확장 프로그램에 전달합니다.

배달 확장 프로그램은 보고서를 구독에 정의된 형식으로 렌더링한 다음 보고서 또는 알림을 지정된 대상에 배달합니다. 보고서를 배달할 수 없으면 보고서 서버 로그 파일에 해당 항목이 기록됩니다. 다시 시도 작업을 지원하려면 첫 번째 시도가 실패할 경우 배달을 다시 시도하도록 보고서 서버를 구성할 수 있습니다.

표준 구독 처리

표준 구독은 보고서 인스턴스를 1개 생성합니다. 보고서는 단일 공유 폴더 또는 구독에 지정된 전자 메일 주소에 배달됩니다. 보고서 레이아웃 및 데이터는 달라지지 않습니다. 보고서에서 매개 변수를 사용하는 경우 표준 구독은 보고서의 각 매개 변수에 대해 단일 값으로 처리됩니다.

데이터 기반 구독 처리

데이터 기반 구독은 여러 대상에 배달되는 많은 보고서 인스턴스를 만들 수 있습니다. 보고서 레이아웃은 달라지지 않지만 매개 변수 값이 구독자 결과 집합으로부터 전달될 경우 보고서의 데이터가 달라질 수 있습니다. 보고서 렌더링 방법에 영향을 주는 배달 옵션 및 보고서가 전자 메일에 첨부되는지 또는 링크되는지 여부도 행 집합에서 값이 전달될 때 구독자에 따라 달라질 수 있습니다.

데이터 기반 구독은 여러 개의 배달을 만들 수 있습니다. 보고서 서버는 구독 쿼리로부터 반환되는 행 집합의 각 행에 대해 하나의 배달을 만듭니다.

보고서 배달 특징

표준 구독을 통해 배달되는 보고서는 일반적으로 정적 보고서로 렌더링됩니다. 이러한 보고서는 최신 보고서 실행 스냅숏을 기반으로 하거나 배달 완료를 위한 정적 보고서로 생성됩니다. 요청 시 실행되는 보고서에 대한 구독에서 링크 포함 옵션을 선택한 경우 사용자가 하이퍼링크를 클릭하면 보고서 서버에서 보고서를 실행합니다.

[!참고]

URL을 통해 배달되는 보고서는 보는 동안에 보고서 서버에 연결된 채 업데이트되거나 삭제될 수 있습니다. 구독에 대해 선택한 배달 옵션에 따라 보고서가 URL로 배달될지, 전자 메일 메시지의 본문에 포함될지, 첨부 파일로 보내질지 여부가 결정됩니다.

데이터 기반 구독을 통해 배달되는 보고서는 구독을 처리하는 동안 다시 생성될 수 있습니다. 보고서 서버는 데이터 기반 구독을 완료하기 위해 보고서의 특정 인스턴스 또는 해당 데이터 집합에서 잠그지 않습니다. 구독에서 구독자마다 다른 매개 변수 값을 사용하는 경우 보고서 서버에서는 보고서를 다시 생성하여 필요한 결과를 만듭니다. 첫 번째 보고서 복사본이 작성되어 배달된 후에 기본으로 사용되는 데이터가 업데이트되면 프로세스의 후반에 보고서를 받은 사용자는 다른 결과 집합에 기반한 데이터를 볼 수 있습니다. 스냅숏으로 실행되는 보고서를 사용하여 모든 구독자에게 동일한 보고서 인스턴스가 배달되는지 확인할 수 있습니다. 그러나 구독이 처리되는 동안 스냅숏에 대해 예약된 업데이트가 발생하는 경우에도 사용자의 보고서에 다른 데이터가 표시될 수 있습니다.

구독 처리 트리거

보고서 서버는 일정에 지정된 시간 기반 이벤트나 스냅숏 업데이트 이벤트를 사용하여 구독 처리를 트리거합니다.

시간 기반 트리거는 보고서별 일정이나 공유 일정을 사용하여 구독 실행 시기를 지정합니다. 요청 시 실행 보고서 및 캐시된 보고서의 경우 일정이 유일한 트리거 옵션입니다.

스냅숏 업데이트 이벤트는 보고서 스냅숏의 예약된 업데이트를 사용하여 구독을 트리거합니다. 보고서에 설정된 보고서 실행 속성에 따라, 보고서가 새 데이터로 업데이트될 때마다 트리거되는 구독을 정의할 수 있습니다.