다음을 통해 공유


NS<NotificationClassName>NotificationDistribution 뷰

몇 개의 내부 Microsoft SQL Server Notification Services 테이블의 데이터를 결합하여 알림 배포 시도에 관한 정보를 제공합니다. Notification Services 는 명명 규칙(NSNotificationClassNameNotificationDistribution)을 이용하여 각각의 알림 클래스마다 한 개의 뷰를 만듭니다.

예를 들어 Notification Services 와 함께 출시되는 스톡 샘플에는 두 개의 알림 클래스(StockNotificationsPortfolioNotifications)가 있습니다. 연결된 뷰는 NSStockNotificationsNotificationDistributionNSPortfolioNotificationsNotificationDistribution으로 명명됩니다.

NSNotificationClassNameNotificationDistribution 뷰에는 다음 테이블에 표시된 열이 포함됩니다.

데이터 형식 설명

NotificationId

bigint

알림 ID입니다.

DeliveryChannelName

nvarchar (255)

알림을 배달하는 데 사용되는 배달 채널의 이름입니다.

DistributorName

nvarchar(255)

알림을 배달하는 데 사용되는 배포자의 이름입니다.

DeliveryRequestTime

datetime

배포자가 배달할 알림 데이터를 전달 받은 날짜 및 시간입니다.

SentTime

datetime

실제로 알림을 전달한 시간입니다.

DeliveryStatusDescription

nvarchar(255)

배달 시도 상태: 시도 안 함, 성공 또는 실패. 자세한 내용은 주의 섹션을 참조하십시오.

DeliveryStatusInfo

nvarchar(2048)

알림 상태를 보고할 때 배달 프로토콜이 배포자에게 반환한 상태 메시지입니다. 이 메시지는 주로 실패 원인을 보고하는 데 사용됩니다. NULL은 전송된 상태 메시지가 없음을 나타냅니다.

NotificationText

nvarchar(2048)

알림 텍스트입니다.

SubscriberId

nvarchar(255)

알림의 구독자 ID입니다.

DeviceName

nvarchar(255)

구독에서 지정한 배달 장치의 이름입니다.

SubscriberLocale

nvarchar(10)

알림의 구독자 로캘입니다.

알림 클래스 필드(1-n)

application-defined

알림 클래스에 지정된 모든 열은 이 뷰에도 나타납니다.

LinkNotificationId

bigint

다이제스트 배달을 사용할 때 다이제스트에 포함된 첫 번째 알림의 ID입니다. 다이제스트의 모든 후속 알림에는 이 ID가 포함됩니다. NULL일 경우 이 알림이 다이제스트의 후속 알림이 아님을 나타냅니다.

주의

NSNotificationClassNameNotificationDistribution 뷰는 응용 프로그램 데이터베이스에 위치합니다.

뷰에서 사용 가능한 데이터의 양은 응용 프로그램 정의의 배포자 로깅 설정을 통해 응용 프로그램별로 제어됩니다. 이 응용 프로그램 설정은 배포 로그에 기록할 내용, 즉 이 뷰에 포함될 내용을 제어합니다. 자세한 내용은 배포자 로깅 구성을 참조하십시오.

하나의 알림이 NSNotificationClassNameNotificationDistribution 뷰에 여러 행을 가질 수도 있습니다. 하나의 행은 각 한 번의 배달 시도에 해당합니다. 예를 들어 알림 배달 시도가 두 번 실패한 뒤 성공하면 알림은 데이터 제거 프로세스가 데이터를 제거할 때까지 이 뷰에 3개의 행을 갖고 있게 됩니다.

알림 배달 상태를 확인하려면 DeliveryStatusDescription 열을 사용하십시오. 다음 표에서는 상태 코드에 대해 설명합니다.

DeliveryStatusDescription 값 설명

Delivery never attempted: first try pending

배포자가 아직 알림 배달을 시도하지 않았습니다. 이것은 응용 프로그램 설정, 배포할 알림의 백로그, 비활성화된 배포자와 같은 배포 문제 또는 너무 많은 실패(FailuresBeforeAbort 설정에 의해 제어됨) 때문일 수 있습니다.

Delivery succeeded

배달 프로토콜이 성공적인 배달을 나타내는 값을 반환했습니다.

Delivery failed

다음 이벤트 중 하나가 발생했습니다.

  • 내용의 서식 지정 단계가 실패했습니다.
  • 배달 프로토콜을 호출하는 도중 오류가 발생했습니다.
  • 배달 프로토콜에 의해 배달 실패가 보고되었습니다.

배달 실패 문제를 해결하려면 Microsoft Windows 이벤트 뷰어에서 응용 프로그램 로그의 오류 메시지를 찾아 보십시오. 하나의 배달 실패에 대해 여러 개의 오류가 기록되어 있을 수 있습니다. 각각의 Notification Services 오류 메시지에 대한 설명을 읽어 보십시오.

사용 권한

이 뷰를 사용하려면 sysadmindb_owner 서버 역할의 멤버, 또는 Notification Services 의 NSAnalysis 역할 멤버여야 합니다.

실패한 알림 배달 시도가 있는지 확인하려면 Stock 샘플에서 다음 쿼리를 실행하십시오.

USE StockInstanceStock;
SELECT NotificationId, DeliveryStatusInfo 
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';

위의 쿼리는 데이터 제거 프로세스를 통해 제거되지 않은 실패한 모든 알림을 반환합니다. 하나의 알림에 여러 개의 실패한 배달 시도가 있었다면 쿼리는 각각의 실패에 대해 한 개의 행을 반환합니다.

한 번 이상 실패한 Stock 샘플에서 알림 목록을 반환하려면 다음 쿼리를 실행하십시오.

USE StockInstanceStock;
SELECT DISTINCT(NotificationId) 
FROM NSStockNotificationsNotificationDistribution
WHERE DeliveryStatusDescription = N'Delivery failed';

참고 항목

참조

Notification Services 뷰

관련 자료

배포자 로깅 구성

도움말 및 정보

SQL Server 2005 지원 받기