다음을 통해 공유


NSDiagnosticFailedNotifications(Transact-SQL)

Microsoft SQL Server Notification Services 응용 프로그램에 대한 실패한 알림 보고서를 생성합니다. 이 보고서에는 실패한 알림 배달 시도 목록이 들어 있습니다. 보고서의 각 행에는 알림을 생성한 알림 클래스와 구독 클래스, 알림을 받은 구독자 및 배달 시도에 관한 정보가 포함됩니다. 이 보고서를 사용하여 알림 배달 문제를 해결할 수 있습니다.

구문

[ schema_name . ] NSDiagnosticFailedNotifications 
    [ @ApplicationName = ] 'app_name' ,
    [, [@StartDateTime = ] 'start_date_time' ] 
    [, [@EndDateTime = ] 'end_date_time' ] 

인수

[ @ApplicationName = ] 'app_name'

구성 파일에 정의된 응용 프로그램의 이름입니다. app_name은 **nvarchar(255)**이며 기본값은 없습니다.

[ @StartDateTime = ] 'start_date_time'

보고서 시작 날짜와 시간(UTC)입니다. start_date_timedatetime입니다. 기본값은 시스템 시작 날짜와 시간입니다.

[ @EndDateTime = ] 'end_date_time'

보고서 종료 날짜와 시간(UTC)입니다. end_date_timedatetime입니다. 기본값은 저장 프로시저를 호출하는 시간(UTC)입니다.

반환 코드 값

없음

결과 집합

열 이름 데이터 형식 설명

ApplicationName

nvarchar(255)

실패한 알림을 보낸 응용 프로그램의 이름입니다.

NotificationClassName

nvarchar(255)

알림을 생성한 알림 클래스의 이름입니다.

DeliveryChannelName

nvarchar(255)

알림 배달을 시도한 배달 채널의 이름입니다.

결과가 NULL이면 구독이 유효한 구독자 장치에 연결되지 않으므로 배달 채널에 할당할 수 없습니다.

NotificationBatchId

bigint

실패한 알림을 포함하는 알림 일괄 처리의 ID입니다.

NotificationId

bigint

실패한 알림의 ID입니다.

SubscriberId

nvarchar(255)

알림을 받았어야 할 구독자의 ID입니다.

SubscriberDeviceAddress

nvarchar(255)

알림을 받았어야 할 장치의 주소(예: 전자 메일 주소)입니다.

DeliveryRequestTime

datetime

배포자가 알림을 배달하기 위해 배달 프로토콜을 요청한 날짜와 시간입니다.

SentTime

datetime

배달 프로토콜이 알림 배달 실패를 보고한 날짜와 시간입니다.

NextRetryTime

datetime

배포자가 다음으로 메시지 배달을 시도할 날짜와 시간입니다.

주의

인스턴스를 만들 때 Notification Services 는 인스턴스 데이터베이스에 NSDiagnosticFailedNotifications 저장 프로시저를 만듭니다. 인스턴스를 업데이트할 경우 Notification Services 는 저장 프로시저를 다시 컴파일합니다.

이 저장 프로시저는 ICF(인스턴스 구성 파일)의 SchemaName 요소가 지정하는 인스턴스 스키마에 있습니다. 제공된 스키마 이름이 없을 경우 기본 스키마는 dbo입니다.

출력은 ApplicationName, NotificationClassName, DeliveryChannelName순으로 정렬된 다음 SubscriberId순으로 정렬됩니다.

응용 프로그램 논리에 따라 단일 구독이 둘 이상의 알림을 생성하고 둘 이상의 구독이 단일 알림을 구성할 수 있으므로 보고서는 알림을 개별 구독에 연결하지 않습니다.

배달 서비스가 오류 기록을 지원할 경우 특정 알림 실패를 데이터베이스에 기록할 수 있습니다. 이 데이터는 NSNotificationClassNameNotificationDistribution 뷰를 사용하여 볼 수 있습니다.

현재 UTC 날짜와 시간을 알려면 SQL Server Management Studio 에서 SELECT GETUTCDATE()를 실행합니다. 현재 UTC 시간은 해당 지역의 현재 시간과 SQL Server 가 실행 중인 컴퓨터 운영 체제의 표준 시간대 설정에서 가져옵니다.

사용 권한

실행 권한은 기본적으로 NSAnalysis 데이터베이스 역할, db_owner 고정 데이터베이스 역할 및 sysadmin 고정 서버 역할의 멤버로 설정됩니다.

1. 시작 시간 및 종료 시간 값 지정

다음 예에서는 Flight 응용 프로그램에 대해 실패한 알림 보고서를 생성합니다. 인스턴스는 모든 인스턴스 개체를 dbo 스키마에 배치하는 기본 데이터베이스 설정을 사용합니다.

이 보고서에는 2004년 5월 23일 오후 5시에서 오후 6시 사이에 실패한 모든 알림에 관한 정보가 포함됩니다.

EXEC dbo.NSDiagnosticFailedNotifications 
    @ApplicationName = N'Flight', 
    @StartDateTime = '2004-05-23 17:00', 
    @EndDateTime = '2004-05-23 18:00';

2. 기본값과 명명된 스키마 사용

다음 예에서는 Flight 응용 프로그램에 대해 실패한 알림 보고서를 생성합니다. 이 예에서 저장 프로시저는 다른 모든 인스턴스 개체와 마찬가지로 ICF의 SchemaName 요소에서 지정한 대로 FlightInstance 스키마에 있습니다.

이 보고서는 응용 프로그램이 시작된 이후의 모든 데이터를 표시하도록 지정하는 기본값을 사용합니다.

EXEC FlightInstance.NSDiagnosticFailedNotifications 
    @ApplicationName = N'Flight';

참고 항목

참조

Notification Services 저장 프로시저(Transact-SQL)

관련 자료

Notification Services 성능 보고서
SchemaName Element (ICF)

도움말 및 정보

SQL Server 2005 지원 받기