비행 예제
업데이트: 2006년 7월 17일
비행 예제는 이벤트 기반의 Microsoft SQL Server 2005 Notification Services 응용 프로그램이며 구독 사용자의 구독에 따라 항공 요금에 대한 알림을 만듭니다.
시나리오
여행 고객들이 항공 요금 알림을 구독합니다. 각 구독에는 출발지와 도착지, 요금 및 항공사(옵션)가 명시됩니다.
Flight 응용 프로그램을 실행하는 회사는 감시된 폴더에 XML 데이터를 놓아 항공 요금 이벤트 데이터를 응용 프로그램에 전송합니다. 그러면 Notification Services는 이 데이터를 받아 일치하는 구독을 갖는 구독자를 위해 알림을 생성합니다.
다음 조건이 충족되면 알림이 생성됩니다.
- 이벤트 티켓 요금이 구독 티켓 요금보다 작습니다.
- 이벤트 출발 공항이 구독 출발 공항과 같습니다.
- 이벤트 도착 공항이 구독 도착 공항과 같습니다.
- 이벤트 항공사가 구독 항공사(지정된 경우)와 같습니다.
한 구독자에게 동시에 전송할 알림이 여러 개인 경우 Notification Services는 다이제스트 배달을 사용하여 여러 알림을 결합합니다. 그런 후 Notification Services는 XSLT 콘텐츠 포맷터를 사용하여 알림의 서식을 지정하고 지정된 배달 채널(전자 메일 또는 파일)을 사용하여 알림을 배포합니다.
언어
XML, XSD, XSLT 및 Microsoft Visual C# 또는 Microsoft Visual Basic
기능
Flight 예제에서는 다음 Notification Services 기능을 사용합니다.
응용 프로그램 영역 | 기능 |
---|---|
이벤트 클래스 |
기본 이벤트 큐(기록 없음) |
구독 클래스 |
이벤트 기반 구독 |
알림 클래스 |
다이제스트 배달 |
이벤트 공급자 |
파일 시스템 감시자 이벤트 공급자 |
콘텐츠 포맷터 |
XSLT 콘텐츠 포맷터 |
배달 프로토콜 |
파일 및 SMTP 배달 프로토콜 |
필수 구성 요소
이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
- 다음 구성 요소를 포함하는 SQL Server 2005
- 데이터베이스 엔진
- Notification Services
- SQL Server Management Studio
- Notification Services 예제. 이 예제는 SQL Server 2005에 포함되어 있습니다. SQL Server Developer 웹 사이트에서 최신 버전의 예제를 다운로드할 수 있습니다.
- .NET Framework SDK 2.0 또는 Microsoft Visual Studio 2005. .NET Framework SDK는 무료로 구할 수 있습니다. .NET Framework SDK 설치를 참조하십시오.
또한 다음 Microsoft Windows 구성 요소가 설치되어 있고 작동되는지 확인합니다.
- 인터넷 정보 서비스(IIS)의 구성 요소인 SMTP(Simple Mail Transfer Protocol) 서비스. Microsoft Windows Server 2003에서는 SMTP가 IIS와 함께 기본적으로 설치되지 않습니다. SMTP 서비스를 설치 및 사용하는 방법은 Windows 설명서를 참조하십시오.
Notification Services 인스턴스 빌드
인스턴스를 빌드하려면 다음을 수행해야 합니다.
- Notification Services 인스턴스를 만듭니다.
- Notification Services 인스턴스를 등록합니다.
- SQL Server, 데이터베이스 및 폴더 사용 권한을 부여합니다.
다음 절차에서는 비행 예제에 대해 이러한 각 작업을 수행하는 방법을 보여 줍니다.
1단계: Notification Services 인스턴스 만들기
SQL Server Management Studio를 열고 SQL Server 인스턴스에 연결합니다.
개체 탐색기에서 Notification Services 폴더를 마우스 오른쪽 단추로 클릭한 후 새 Notification Services 인스턴스를 선택합니다.
새 Notification Services 인스턴스 대화 상자에서 찾아보기를 클릭하고 비행 예제의 루트 폴더에 있는 InstanceConfig.xml 파일을 선택합니다.
매개 변수 입력란에 다음의 세 매개 변수에 대한 값을 입력합니다.
- SampleDirectory: 비행 예제의 루트 폴더 경로입니다. 기본 경로는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight입니다.
- NotificationServicesHost: Notification Services 서버의 이름입니다.
- SQLServer: SQL Server 인스턴스의 이름입니다.
생성 후 인스턴스를 설정합니다 확인란을 선택합니다.
확인을 클릭합니다.
Notification Services에서 인스턴스 생성을 마치면 닫기를 클릭합니다.
2단계: Notification Services 인스턴스 등록
SQL Server Management Studio에서 Notification Services 노드를 열어 FlightInstance를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 후 등록을 선택합니다.
등록 대화 상자에서 Windows 서비스 만들기 확인란을 선택합니다. Windows 서비스가 이 컴퓨터에서 해당 Notification Services 인스턴스를 실행합니다.
서비스 로그온에서 Windows 로그온 계정과 암호를 입력합니다. 이 계정은 서비스가 실행될 Windows 계정입니다. Windows 인증을 사용하여 SQL Server에 액세스할 경우 해당 Windows 서비스 또한 이 계정을 사용하여 SQL Server에 연결합니다.
SQL Server 인증을 사용하여 SQL Server에 액세스해야 할 경우 인증에서 SQL Server 인증을 선택한 후 SQL Server 로그인 이름과 암호를 입력합니다.
Windows 인증을 사용하는 것이 좋습니다.
확인을 클릭합니다.
Notification Services에서 인스턴스 등록을 마치면 닫기를 클릭합니다.
[!참고] 데이터베이스 소유자 또는 시스템 관리자 계정을 사용하여 Notification Services 예제를 배포할 경우 계정에 SQL Server 사용 권한을 부여할 필요가 없습니다. 이러한 권한을 부여하면 무시해도 되는 오류가 발생할 수 있습니다. 자체 응용 프로그램을 배포할 때는 보안을 향상시키기 위해 권한이 더 낮은 계정을 사용해야 합니다.
3단계: SQL Server, 데이터베이스 및 폴더 사용 권한 부여
개체 탐색기에서 보안 노드를 확장합니다.
Windows 서비스에 대한 데이터베이스 로그인 계정을 새로 만들어야 할 경우 로그인을 마우스 오른쪽 단추로 클릭하고 새 로그인을 선택하고 다음과 같이 로그인 계정을 만듭니다.
- Windows 인증을 사용하려면 Windows 인증을 선택하고 인스턴스 등록 시 지정한 것과 동일한 Windows 계정을 입력합니다.
- SQL Server 인증을 사용해야 할 경우 SQL Server 인증을 선택한 후 인스턴스 등록 시 지정한 것과 동일한 SQL Server 로그인과 암호를 입력합니다.
Windows 서비스에 사용된 로그인에 SQL Server 액세스 권한이 이미 있으면 해당 로그인을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
로그인 대화 상자의 왼쪽 창에서 사용자 매핑을 선택합니다.
다음과 같이 FlightInstanceNSMain 데이터베이스에 대한 사용 권한을 부여합니다.
- 이 로그인으로 매핑된 사용자 상자에서 FlightInstanceNSMain을 선택합니다.
- 데이터베이스 역할 멤버 자격: FlightInstanceNSMain 목록 상자에서 NSRunService를 선택합니다.
다음과 같이 FlightInstanceFlight 데이터베이스에 대한 사용 권한을 부여합니다.
- 이 로그인으로 매핑된 사용자 상자에서 FlightInstanceFlight를 선택합니다.
- 데이터베이스 역할 멤버 자격: FlightInstanceFlight 목록 상자에서 NSRunService를 선택합니다.
확인을 클릭하여 SQL Server 사용 권한을 적용합니다.
Windows 탐색기를 사용하여 다음과 같이 Events 폴더에 대한 보안을 구성합니다.
- 예제의 Events 폴더를 찾습니다.
- Events 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 후 보안 탭을 선택합니다.
- 추가를 클릭하고 Windows 서비스에 사용된 계정을 추가합니다.
- 그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
- 사용 권한 목록 상자에서 읽기 및 수정 권한을 선택합니다.
- 확인을 클릭하여 변경 내용을 적용합니다.
다음과 같이 Notifications 폴더에 대한 보안을 구성합니다.
- 예제의 Notifications 폴더를 찾습니다.
- Notifications 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 후 보안 탭을 선택합니다.
- 추가를 클릭하고 Windows 서비스에 사용된 계정을 추가합니다.
- 그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
- 사용 권한 목록 상자에서 쓰기를 선택합니다.
- 확인을 클릭하여 변경 내용을 적용합니다.
강력한 이름의 키 파일 생성
강력한 이름 키 파일을 생성하지 않았다면 다음 지침에 따라 해당 키 파일을 생성합니다.
강력한 이름 키 파일을 생성하려면
Microsoft Visual Studio 2005 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.
-- 또는--
Microsoft .NET Framework 명령 프롬프트를 엽니다. 시작을 클릭하고 모든 프로그램, Microsoft .NET Framework SDK 2.0을 차례로 가리킨 다음 SDK 명령 프롬프트를 클릭합니다.
디렉터리 변경 명령(CD)을 사용하여 명령 프롬프트 창의 현재 디렉터리를 예제가 설치된 폴더로 변경합니다.
[!참고] 예제가 있는 폴더를 확인하려면 시작 단추를 클릭하고 모든 프로그램, Microsoft SQL Server, 설명서 및 자습서를 차례로 가리킨 다음 예제 디렉터리를 클릭하십시오. 기본 설치 위치가 사용된 경우 예제는 <system_drive>:\Program Files\Microsoft SQL Server\100\Samples에 있습니다.
명령 프롬프트에서 다음 명령을 실행하여 키 파일을 생성합니다.
sn -k SampleKey.snk
중요: 강력한 이름 키 쌍에 대한 자세한 내용은 MSDN의 .NET Development Center에서 "Security Briefs: Strong Names and Security in the .NET Framework"를 참조하십시오.
예제 실행
예제를 실행하려면 다음을 수행해야 합니다.
- 인스턴스를 시작합니다.
- 구독자 및 구독을 추가합니다.
- 이벤트가 들어 있는 XML 파일을 해당 위치에 놓습니다.
- 결과 알림을 검토합니다.
다음 절차에서는 이러한 작업을 수행하고 결과 알림을 확인하는 방법을 보여 줍니다.
1단계: 인스턴스 시작
개체 탐색기에서 Notification Services 폴더를 엽니다.
FlightInstance를 마우스 오른쪽 단추로 클릭한 다음 시작을 선택합니다.
2단계: 구독자 및 구독 추가
Flight 또는 Flight_VB Visual Studio 솔루션을 빌드합니다.
Microsoft .NET Framework SDK를 사용할 경우 다음을 수행합니다.
- 시작을 클릭하고 모든 프로그램\Microsoft .NET Framework SDK v2.0을 가리킨 후 SDK 명령 프롬프트를 클릭합니다.
- 비행 예제의 루트 폴더를 찾습니다. 기본 위치에 대해 다음 명령을 입력합니다.
cd \Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight - 다음을 입력하여 Visual Studio 솔루션을 빌드합니다.
[C#]
msbuild Flight.sln
[Visual Basic]
msbuild Flight_VB.sln
또는 Visual Studio 2005를 사용할 경우 다음을 수행합니다.
- 선택한 솔루션 파일(Flight.sln 또는 Flight_VB.sln)을 엽니다.
- 솔루션을 빌드합니다.
AddSubscribers.exe를 실행합니다.
이 파일의 기본 위치는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscribers\language\AddSubscribers\bin\Debug입니다.
AddSubscriptions.exe를 실행합니다.
이 파일의 기본 위치는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight\AddSubscriptions\language\AddSubscriptions\bin\Debug입니다.
[!참고] 프로덕션 응용 프로그램의 경우 또는 이 응용 프로그램을 제한된 계정으로 실행 중인 경우에는 응용 프로그램의 SQL Server 로그인을 인스턴스 및 응용 프로그램 데이터베이스에 있는 NSSubscriberAdmin 데이터베이스 역할에 추가합니다.
3단계: 이벤트 전송
Windows 탐색기에서 비행 예제의 루트 폴더를 찾은 다음 EventData.xml 파일을 Events 하위 폴더에 복사합니다.
이 파일을 복사하면 파일 시스템 감시자 이벤트 공급자는 해당 파일에서 데이터를 읽고 응용 프로그램으로 전송한 후 파일 이름 확장명을 .done로 변경합니다.
데이터를 읽거나 전송할 때 오류가 발생하면 이벤트 공급자는 파일 이름 확장명을 .err로 변경합니다. 오류에 대한 추가 정보를 보려면 Windows 이벤트 뷰어를 확인하십시오.
4단계: 알림 보기
Notification Services에서 알림을 생성할 때까지 약 1분 정도 기다립니다.
Windows 탐색기를 사용하여 비행 예제의 Notifications 폴더를 찾습니다. FileNotifications.txt라는 파일에서 파일 기반 알림을 확인할 수 있습니다.
전자 메일 메시지가 놓인 폴더로 이동합니다. 이 폴더는 일반적으로 C:\Inetpub\mailroot에 있는 폴더 중 하나입니다. SMTP 서버 상태에 따라 알림이 Pickup 폴더에 추가되거나 Queue 폴더에 추가됩니다. SMTP 서비스가 실행 중이면 메시지가 Badmail 폴더로 이동될 수 있습니다.
예제 제거
다음 단계에 따라 비행 예제를 제거합니다.
비행 예제를 제거하려면
SQL Server Management Studio 개체 탐색기에서 Notification Services 폴더를 엽니다.
FlightInstance를 마우스 오른쪽 단추로 클릭한 다음 중지를 선택합니다.
FlightInstance를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 등록 취소를 선택합니다.
FlightInstance를 마우스 오른쪽 단추로 클릭하고 작업을 가리킨 다음 삭제를 선택합니다.
참고 항목
관련 자료
SQL Server Notification Services 예제
Notification Services 보안 설정
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 4월 14일 |
|
2005년 12월 5일 |
|