다음을 통해 공유


이익률 예제

업데이트: 2006년 7월 17일

이익률 예제는 이벤트 기반의 Microsoft SQL Server Notification Services 응용 프로그램이며 개별 직원의 이익률에 대한 알림을 만들어 이 데이터를 구독 사용자에게 보냅니다. 이 예제에서는 SSAS 이벤트 공급자를 사용하여 SSAS 데이터베이스를 쿼리하고 그 결과를 Notification Services 응용 프로그램에 이벤트로 반환합니다.

[!참고] Itanium 기반 서버에서는 Business Intelligence Development Studio가 설치되지 않으므로 이 예제를 실행할 수 없습니다.

시나리오

회사는 SSAS 데이터베이스를 사용하여 판매 실적을 분석합니다. 판매 부서의 직원은 이익률 응용 프로그램을 구독하여 대리점이 이익률 목표를 초과한 경우 알림을 받을 수 있습니다.

SSAS 이벤트 공급자는 응용 프로그램에 지정된 일정에 따라 MDX 쿼리를 실행하여 이벤트를 수집합니다. 이러한 이벤트는 생성자가 실행될 때 기록에 추가됩니다. 생성자는 다음 조건이 충족되면 이벤트 기록에서 알림을 만듭니다.

  • 구독자의 이름이 이벤트의 직원 이름과 일치합니다.
  • 대리점의 매출이익률이 대리점의 매출이익률 목표보다 높습니다.

결과 알림은 XSL 변환을 사용하여 서식이 지정된 후 파일로 전송됩니다.

언어

XML, XSD, XSLT 및 Microsoft Visual C# 또는 Microsoft Visual Basic

기능

SSAS 예제에서는 다음 Notification Services 기능을 사용합니다.

응용 프로그램 영역 기능

이벤트 클래스

기본 이벤트 큐 및 기록 한 개

구독 클래스

이벤트 기반 구독 클래스 한 개

알림 클래스

알림 클래스 한 개(다이제스트 또는 멀티캐스트 배달 없음)

이벤트 공급자

SSAS 이벤트 공급자 두 개(정적 한 개와 동적 한 개)

콘텐츠 포맷터

XSLT 콘텐츠 포맷터

배달 프로토콜

파일 및 SMTP 배달 프로토콜

필수 구성 요소

이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.

  • Microsoft SQL Server 2005에 다음 구성 요소가 설치되어야 합니다.
    • 데이터베이스 엔진
    • Notification Services
    • SSAS
    • SQL Server Management Studio
    • Business Intelligence Development Studio
    • AdventureWorksDW 데이터베이스. 이 데이터베이스는 SQL Server 2005에 포함되어 있으며 SQL Server Developer 웹 사이트에서 다운로드할 수도 있습니다. 자세한 내용은 AdventureWorks 예제 및 예제 데이터베이스 설치를 위해 설치 프로그램 실행을 참조하십시오.
    • Notification Services 예제. 이 예제는 SQL Server 2005에 포함되어 있습니다. SQL Server Developer 웹 사이트에서 최신 버전의 예제를 다운로드할 수 있습니다.
    • .NET Framework SDK 2.0 또는 Microsoft Visual Studio 2005. .NET Framework SDK는 무료로 구할 수 있습니다. .NET Framework SDK 설치를 참조하십시오.

예제 빌드

예제를 빌드하려면 다음을 수행해야 합니다.

  • SSAS 데이터베이스를 배포합니다.
  • Notification Services 인스턴스를 만듭니다.
  • Notification Services의 인스턴스를 등록합니다.
  • SQL Server 및 데이터베이스 사용 권한을 부여합니다.

다음 절차에서는 이익률 예제에 대해 이러한 각 작업을 수행하는 방법을 보여 줍니다.

1단계: Adventure Works DW OLAP 데이터베이스 배포

  1. SQL Server Business Intelligence Development Studio를 열고 파일을 클릭하고 열기를 가리킨 다음 프로젝트/솔루션을 클릭합니다.

  2. C:\Program Files\Microsoft SQL Server\90\Tools\Samples\AdventureWorks Analysis Services Project를 찾아 Adventure Works DW.dwproj 파일을 선택한 다음 열기를 클릭합니다.

  3. 솔루션 탐색기에서 Adventure Works DW를 마우스 오른쪽 단추로 클릭한 다음 배포를 선택합니다.

2단계: Notification Services 인스턴스 만들기

  1. SQL Server Management Studio를 열고 SQL Server 인스턴스에 연결합니다.

  2. 개체 탐색기에서 Notification Services 폴더를 마우스 오른쪽 단추로 클릭한 후 새 Notification Services 인스턴스를 선택합니다.

  3. 새 Notification Services 인스턴스 대화 상자에서 찾아보기를 클릭하여 이익률 예제의 루트 폴더에 있는 InstanceConfig.xml 파일을 선택합니다.

  4. 매개 변수 입력란에 다음의 세 매개 변수에 대한 값을 입력합니다.

    • SampleDirectory는 이익률 예제의 루트 폴더 경로입니다. 기본 경로는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin입니다.
    • NotificationServicesHost는 로컬 서버 이름입니다.
    • SQLServer는 SQL Server 인스턴스의 이름입니다.
  5. 생성 후 인스턴스를 설정합니다 확인란을 선택합니다.

  6. 확인을 클릭합니다..

  7. Notification Services에서 인스턴스 생성을 마치면 닫기를 클릭합니다.

[!참고] 데이터베이스 소유자 또는 시스템 관리자 계정을 사용하여 Notification Services 예제를 배포할 경우 계정에 SQL Server 사용 권한을 부여할 필요가 없습니다. 이러한 권한을 부여하면 무시해도 되는 오류가 발생할 수 있습니다. 자체 응용 프로그램을 배포할 때는 보안을 향상시키기 위해 권한이 더 낮은 계정을 사용해야 합니다.

3단계: Notification Services 인스턴스 등록

  1. SQL Server Management Studio에서 Notification Services 노드를 열고 ProfitMarginInstance를 마우스 오른쪽 단추로 클릭한 다음 작업을 가리키고 등록을 선택합니다.

  2. 등록 대화 상자에서 Windows 서비스 만들기 확인란을 선택합니다.

    Windows 서비스가 이 컴퓨터에서 해당 Notification Services 인스턴스를 실행합니다.

  3. 서비스 로그온에서 Windows 계정과 암호를 입력합니다. 이 계정은 서비스가 실행될 Windows 계정입니다. Windows 인증을 사용하여 SQL Server에 액세스할 경우 해당 Windows 서비스 또한 이 계정을 사용하여 SQL Server에 연결합니다.

  4. SQL Server 인증을 사용하여 SQL Server에 액세스해야 하는 경우 인증에서 SQL Server 인증을 선택한 다음 SQL Server 로그인 이름과 암호를 입력합니다.

    Windows 인증을 사용하는 것이 좋습니다.

  5. 확인을 클릭합니다..

  6. Notification Services에서 인스턴스 등록을 마치면 닫기를 클릭합니다.

4단계: SQL Server 및 데이터베이스 사용 권한 부여

  1. 개체 탐색기에서 보안 노드를 확장합니다.

  2. Windows 서비스에 대한 새 데이터베이스 로그인 계정을 새로 만들어야 하는 경우 로그인을 마우스 오른쪽 단추로 클릭하고 새 로그인을 선택한 후 다음과 같이 로그인 계정을 만듭니다.

    • Windows 인증을 사용하려면 Windows 인증을 선택하고 인스턴스 등록 시 지정한 것과 동일한 Windows 계정을 입력합니다.
    • SQL Server 인증을 사용해야 하는 경우 SQL Server 인증을 선택한 다음 인스턴스 등록 시 지정한 것과 동일한 SQL Server 로그인 및 암호를 입력합니다.
  3. Windows 서비스에 사용된 로그인에 SQL Server 액세스 권한이 이미 있으면 해당 로그인을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 로그인 대화 상자의 왼쪽 창에서 사용자 매핑을 선택합니다.

  5. 다음과 같이 ProfitMarginInstanceNSMain 데이터베이스에 대한 사용 권한을 부여합니다.

    1. 이 로그인으로 매핑된 사용자 상자에서 ProfitMarginInstanceNSMain 데이터베이스 옆의 상자를 선택합니다.
    2. 데이터베이스 역할 멤버 자격: ProfitMarginInstanceNSMain 목록 상자에서 NSRunService를 선택합니다.
  6. 다음과 같이 ProfitMarginInstanceProfitMargin 데이터베이스에 대한 사용 권한을 부여합니다.

    1. 이 로그인으로 매핑된 사용자 상자에서 ProfitMarginInstanceProfitMargin 데이터베이스 옆의 상자를 선택합니다.
    2. 데이터베이스 역할 멤버 자격: ProfitMarginInstanceProfitMargin 목록 상자에서 NSRunService를 선택합니다.
  7. 확인을 클릭하여 SQL Server 사용 권한을 적용합니다.

  8. 다음과 같이 Adventure Works DW 데이터베이스에 대한 사용 권한을 부여합니다.

    1. SQL Server Management Studio에서 SSAS에 연결합니다.
    2. SSAS의 데이터베이스 폴더를 확장한 다음 Adventure Works DW를 확장합니다.
    3. 역할을 마우스 오른쪽 단추로 클릭하고 새 역할을 선택합니다.
    4. 역할 이름 상자에 ProfitMarginNS를 입력합니다.
    5. 왼쪽 창에서 멤버 자격을 클릭하고 이 예제의 Notification Services Windows 서비스를 실행하는 데 사용되는 계정을 추가합니다.
    6. 왼쪽 창에서 큐브를 선택합니다.
    7. AdventureWorks 큐브의 경우 액세스 권한 필드를 클릭하고 읽기를 선택합니다.
    8. 확인을 클릭하여 큐브 권한을 적용합니다.
  9. 다음과 같이 Events 폴더에 대한 보안을 구성합니다.

    1. Windows 탐색기에서 이익률 예제의 Events 폴더를 찾습니다.
    2. Events 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 후 보안 탭을 선택합니다.
    3. 추가를 클릭하고 Windows 서비스에 사용되는 계정을 추가합니다.
    4. 그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
    5. 사용 권한 목록 상자에서 읽기수정 권한을 선택합니다.
    6. 확인을 클릭하여 변경 내용을 적용합니다.
  10. 다음과 같이 Notifications 폴더에 대한 보안을 구성합니다.

    1. 이익률 예제의 Notifications 폴더를 찾습니다.
    2. Notifications 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 다음 보안 탭을 클릭합니다.
    3. 추가를 클릭하고 Windows 서비스에 사용되는 계정을 추가합니다.
    4. 그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
    5. 사용 권한 상자에서 쓰기를 선택합니다.
    6. 확인을 클릭하여 변경 내용을 적용합니다.

강력한 이름의 키 파일 생성

강력한 이름 키 파일을 생성하지 않았다면 다음 지침에 따라 해당 키 파일을 생성합니다.

강력한 이름 키 파일을 생성하려면

  1. Microsoft Visual Studio 2005 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.

    -- 또는--

    Microsoft .NET Framework 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.

  2. 디렉터리 변경 명령(CD)을 사용하여 명령 프롬프트 창의 현재 디렉터리를 예제가 설치된 폴더로 변경합니다.

    [!참고] 예제가 있는 폴더를 확인하려면 시작 단추를 클릭하고 모든 프로그램, Microsoft SQL Server, 설명서 및 자습서를 차례로 가리킨 다음 예제 디렉터리를 클릭하십시오. 기본 설치 위치가 사용된 경우 예제는 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples에 있습니다.

  3. 명령 프롬프트에서 다음 명령을 실행하여 키 파일을 생성합니다.

    sn -k SampleKey.snk

    ms160923.note(ko-kr,SQL.90).gif중요:
    강력한 이름 키 쌍에 대한 자세한 내용은 MSDN의 .NET Development Center에서 "Security Briefs: Strong Names and Security in the .NET Framework"를 참조하십시오.

예제 실행

예제를 실행하려면 다음을 수행하십시오.

  • 인스턴스를 시작합니다.
  • 구독자 및 구독을 추가합니다.
  • SSAS 데이터 웨어하우스에 이벤트를 추가합니다.

다음 절차에서는 이러한 작업을 수행하고 결과 알림을 확인하는 방법을 보여 줍니다.

1단계: 인스턴스 시작

  1. 개체 탐색기에서 Notification Services 폴더를 엽니다.

  2. ProfitMarginInstance를 마우스 오른쪽 단추로 클릭한 다음 시작을 클릭합니다.

2단계: 구독자 및 구독 추가

  1. ProfitMargin 또는 ProfitMargin_VB Visual Studio 솔루션을 빌드합니다.

    .NET Framework SDK를 사용할 경우 다음을 수행합니다.

    1. 시작 메뉴에서 모든 프로그램\Microsoft .NET Framework SDK v2.0을 가리킨 후 SDK 명령 프롬프트를 클릭합니다.
    2. 이익률 예제의 루트 폴더를 찾습니다. 기본 위치에 대해 다음 명령을 입력합니다.
      cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin
    3. 다음을 입력하여 솔루션을 빌드합니다.
      [C#]
      msbuild ProfitMargin.sln
      [Visual Basic]
      msbuild ProfitMargin_VB.sln

    Visual Studio 2005를 사용할 경우 다음을 수행합니다.

    1. 선택한 솔루션 파일(ProfitMargin.sln 또는 ProfitMargin_VB.sln)을 엽니다.
    2. F6 키를 눌러 솔루션을 빌드합니다.
  2. AddSubscribers.exe를 실행합니다.

    이 파일의 기본 위치는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscribers\language\AddSubscribers\bin\Debug입니다.

  3. AddSubscriptions.exe를 실행합니다.

    이 파일의 기본 위치는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\ProfitMargin\AddSubscriptions\language\AddSubscriptions\bin\Debug입니다.

[!참고] 프로덕션 응용 프로그램의 경우 또는 이 응용 프로그램을 제한된 계정으로 실행 중인 경우에는 응용 프로그램의 SQL Server 로그인을 인스턴스 및 응용 프로그램 데이터베이스에 있는 NSSubscriberAdmin 데이터베이스 역할에 추가합니다.

3단계: Analysis Services 데이터 웨어하우스에 이벤트 추가

  1. SQL Server Management Studio에서 새 SQL Server 쿼리 창을 엽니다.

  2. ProfitMargin/SQL Scripts 폴더에 있는 TriggerEvent.sql 파일을 열어 AdventureWorks 데이터 웨어하우스에 데이터를 추가합니다. 이 데이터는 이벤트를 생성합니다.

    [!참고] 이 스크립트를 다시 실행하는 경우 새 판매 주문을 추가하려면 SELECT @SalesOrderNumber 문자 값을 변경하여 SalesOrderNumber를 변경해야 합니다.

  3. 다음과 같이 큐브를 다시 처리합니다.

    1. SQL Server Management Studio 개체 탐색기에서 연결을 클릭한 다음 Analysis Services를 선택합니다.
    2. 서버에 연결 대화 상자에서 서버 이름 상자에 AdventureWorksDW 큐브를 호스팅하는 서버 이름을 입력한 다음 연결을 클릭합니다.
    3. 개체 탐색기에서 분석 서버 노드를 열고 데이터베이스 폴더를 연 다음 Adventure Works DW/큐브/Adventure Works/측정값 그룹/Reseller Sales를 찾습니다.
    4. Reseller Sales를 마우스 오른쪽 단추로 클릭한 다음 처리를 선택합니다.
    5. 확인을 클릭하여 Reseller Sales 큐브를 다시 처리합니다.

4단계: 알림 보기

  1. Notification Services에서 알림을 생성할 때까지 약 1분을 기다립니다.

  2. Windows 탐색기에서 이익률 예제의 Notifications 폴더를 찾습니다. FileNotifications.txt라는 파일에서 알림을 확인할 수 있습니다.

  3. 전자 메일 메시지가 있는 폴더를 찾습니다. 이 폴더는 일반적으로 C:\Inetpub\mailroot에 있는 폴더 중 하나입니다. SMTP 서버 상태에 따라 알림이 Pickup 폴더에 추가되거나 Queue 폴더에 추가됩니다. SMTP 서비스가 실행 중이면 메시지가 Badmail 폴더로 이동될 수 있습니다.

예제 제거

다음 절차에 따라 이익률 예제를 제거할 수 있습니다.

ProfitMargin 예제를 제거하려면

  1. 개체 탐색기 창에서 Notification Services 폴더를 엽니다.

  2. ProfitMarginInstance를 마우스 오른쪽 단추로 클릭한 다음 중지를 선택합니다.

  3. ProfitMarginInstance를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 등록 취소를 선택합니다.

  4. ProfitMarginInstance를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 삭제를 선택합니다.

참고 항목

관련 자료

SQL Server Notification Services 예제
Notification Services 보안 설정

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

추가된 내용
  • 데이터베이스 소유자 권한을 사용한 예제 실행에 대한 참고를 추가했습니다.
  • Itanium 기반 서버에는 Business Intelligence Development Studio가 설치되지 않는다는 참고를 추가했습니다.

2005년 12월 5일

변경된 내용
  • 키 파일의 이름 및 위치를 포함하여 키 파일 생성 방법에 대한 정보를 변경했습니다.
  • AdventureWorks DW 큐브의 권한 부여 방법에 대한 정보를 추가했습니다.
  • 큐브 배포 방법에 대한 정보를 업데이트했습니다.