비행 예제
비행 예제는 이벤트 기반의 Microsoft SQL Server 2005 Notification Services 응용 프로그램이며 구독 사용자의 구독에 따라 항공 요금에 대한 알림을 만듭니다.
여행 고객들이 항공 요금 알림을 구독합니다. 각 구독에는 출발지와 도착지, 요금 및 항공사(옵션)가 명시됩니다.
Flight 응용 프로그램을 실행하는 회사는 감시된 폴더에 XML 데이터를 놓아 항공 요금 이벤트 데이터를 응용 프로그램에 전송합니다. 그러면 Notification Services는 이 데이터를 받아 일치하는 구독을 갖는 구독자를 위해 알림을 생성합니다.
다음 조건이 충족되면 알림이 생성됩니다.
-
이벤트 티켓 요금이 구독 티켓 요금보다 작습니다.
-
이벤트 출발 공항이 구독 출발 공항과 같습니다.
-
이벤트 도착 공항이 구독 도착 공항과 같습니다.
-
이벤트 항공사가 구독 항공사(지정된 경우)와 같습니다.
한 구독자에게 동시에 전송할 알림이 여러 개인 경우 Notification Services는 다이제스트 배달을 사용하여 여러 알림을 결합합니다. 그런 후 Notification Services는 XSLT 콘텐츠 포맷터를 사용하여 알림의 서식을 지정하고 지정된 배달 채널(전자 메일 또는 파일)을 사용하여 알림을 배포합니다.
이 예제를 실행하기 전에 다음 소프트웨어가 설치되어 있는지 확인하십시오.
-
다음 구성 요소를 포함하는 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 인스턴스를 등록합니다.
-
SQL Server, 데이터베이스 및 폴더 사용 권한을 부여합니다.
다음 절차에서는 비행 예제에 대해 이러한 각 작업을 수행하는 방법을 보여 줍니다.
-
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 인스턴스의 이름입니다.
-
SampleDirectory: 비행 예제의 루트 폴더 경로입니다. 기본 경로는 C:\Program Files\Microsoft SQL Server\90\Samples\Notification Services\Flight입니다.
-
생성 후 인스턴스를 설정합니다 확인란을 선택합니다.
-
확인을 클릭합니다.
-
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 사용 권한을 부여할 필요가 없습니다. 이러한 권한을 부여하면 무시해도 되는 오류가 발생할 수 있습니다. 자체 응용 프로그램을 배포할 때는 보안을 향상시키기 위해 권한이 더 낮은 계정을 사용해야 합니다. |
-
개체 탐색기에서 보안 노드를 확장합니다.
-
Windows 서비스에 대한 데이터베이스 로그인 계정을 새로 만들어야 할 경우 로그인을 마우스 오른쪽 단추로 클릭하고 새 로그인을 선택하고 다음과 같이 로그인 계정을 만듭니다.
-
Windows 인증을 사용하려면 Windows 인증을 선택하고 인스턴스 등록 시 지정한 것과 동일한 Windows 계정을 입력합니다.
-
SQL Server 인증을 사용해야 할 경우 SQL Server 인증을 선택한 후 인스턴스 등록 시 지정한 것과 동일한 SQL Server 로그인과 암호를 입력합니다.
-
Windows 인증을 사용하려면 Windows 인증을 선택하고 인스턴스 등록 시 지정한 것과 동일한 Windows 계정을 입력합니다.
-
Windows 서비스에 사용된 로그인에 SQL Server 액세스 권한이 이미 있으면 해당 로그인을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
-
로그인 대화 상자의 왼쪽 창에서 사용자 매핑을 선택합니다.
-
다음과 같이 FlightInstanceNSMain 데이터베이스에 대한 사용 권한을 부여합니다.
-
이 로그인으로 매핑된 사용자 상자에서 FlightInstanceNSMain을 선택합니다.
-
데이터베이스 역할 멤버 자격: FlightInstanceNSMain 목록 상자에서 NSRunService를 선택합니다.
-
이 로그인으로 매핑된 사용자 상자에서 FlightInstanceNSMain을 선택합니다.
-
다음과 같이 FlightInstanceFlight 데이터베이스에 대한 사용 권한을 부여합니다.
-
이 로그인으로 매핑된 사용자 상자에서 FlightInstanceFlight를 선택합니다.
-
데이터베이스 역할 멤버 자격: FlightInstanceFlight 목록 상자에서 NSRunService를 선택합니다.
-
이 로그인으로 매핑된 사용자 상자에서 FlightInstanceFlight를 선택합니다.
-
확인을 클릭하여 SQL Server 사용 권한을 적용합니다.
-
Windows 탐색기를 사용하여 다음과 같이 Events 폴더에 대한 보안을 구성합니다.
-
예제의 Events 폴더를 찾습니다.
-
Events 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 후 보안 탭을 선택합니다.
-
추가를 클릭하고 Windows 서비스에 사용된 계정을 추가합니다.
-
그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
-
사용 권한 목록 상자에서 읽기 및 수정 권한을 선택합니다.
-
확인을 클릭하여 변경 내용을 적용합니다.
-
예제의 Events 폴더를 찾습니다.
-
다음과 같이 Notifications 폴더에 대한 보안을 구성합니다.
-
예제의 Notifications 폴더를 찾습니다.
-
Notifications 폴더를 마우스 오른쪽 단추로 클릭하고 공유 및 보안을 선택한 후 보안 탭을 선택합니다.
-
추가를 클릭하고 Windows 서비스에 사용된 계정을 추가합니다.
-
그룹 또는 사용자 이름 목록 상자에서 방금 추가한 계정을 선택합니다.
-
사용 권한 목록 상자에서 쓰기를 선택합니다.
-
확인을 클릭하여 변경 내용을 적용합니다.
-
예제의 Notifications 폴더를 찾습니다.
강력한 이름 키 파일을 생성하지 않았다면 다음 지침에 따라 해당 키 파일을 생성합니다.
- 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 파일을 해당 위치에 놓습니다.
-
결과 알림을 검토합니다.
다음 절차에서는 이러한 작업을 수행하고 결과 알림을 확인하는 방법을 보여 줍니다.
-
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)을 엽니다.
-
솔루션을 빌드합니다.
-
시작을 클릭하고 모든 프로그램\Microsoft .NET Framework SDK v2.0을 가리킨 후 SDK 명령 프롬프트를 클릭합니다.
-
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 데이터베이스 역할에 추가합니다. |
-
Notification Services에서 알림을 생성할 때까지 약 1분 정도 기다립니다.
-
Windows 탐색기를 사용하여 비행 예제의 Notifications 폴더를 찾습니다. FileNotifications.txt라는 파일에서 파일 기반 알림을 확인할 수 있습니다.
-
전자 메일 메시지가 놓인 폴더로 이동합니다. 이 폴더는 일반적으로 C:\Inetpub\mailroot에 있는 폴더 중 하나입니다. SMTP 서버 상태에 따라 알림이 Pickup 폴더에 추가되거나 Queue 폴더에 추가됩니다. SMTP 서비스가 실행 중이면 메시지가 Badmail 폴더로 이동될 수 있습니다.
