NS<NotificationClassName>NotificationDistribution 뷰
몇 개의 내부 Microsoft SQL Server Notification Services 테이블의 데이터를 결합하여 알림 배포 시도에 관한 정보를 제공합니다. Notification Services 는 명명 규칙(NSNotificationClassNameNotificationDistribution)을 이용하여 각각의 알림 클래스마다 한 개의 뷰를 만듭니다.
예를 들어 Notification Services 와 함께 출시되는 스톡 샘플에는 두 개의 알림 클래스(StockNotifications 및 PortfolioNotifications)가 있습니다. 연결된 뷰는 NSStockNotificationsNotificationDistribution 및 NSPortfolioNotificationsNotificationDistribution으로 명명됩니다.
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 오류 메시지에 대한 설명을 읽어 보십시오.
사용 권한
이 뷰를 사용하려면 sysadmin 및 db_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';