Leçon 11 : Soumission d'événements à l'application Weather

Au cours de cette étape, vous allez utiliser un script Transact-SQL pour soumettre des événements à l'application Weather, puis visualiser les notifications obtenues.

Données d'événement

Les événements sont des données que votre application de notification utilise pour générer des notifications. Les requêtes de génération de notification que vous écrivez, permettent de joindre des données d'événements et des données d'abonnements pour produire des notifications, telles que la requête de la leçon 5.

Les requêtes qui permettent de générer des notifications sont exécutées au cours de chaque quantum de générateur possédant des données à traiter. Les règles d'événement s'exécutent dans les quantum dans lesquels un ou plusieurs lots sont arrivés. Les règles planifiées s'exécutent dans les quantum dans lesquels des abonnements planifiés sont attendus pour être traités.

S'il n'existe aucune données d'événement, il n'existe aucune raison d'exécuter des règles. Par conséquent, aucune notification n'est produite.

Événements WeatherData

Pour cette application, vous allez soumettre un lot d'événements en utilisant les procédures stockées de soumission d'événements. Vous allez tout d'abord utiliser la procédure stockée NSEventBeginBatchWeatherData pour ouvrir un lot d'événements. Vous spécifierez comme fournisseur d'événements, le fournisseur d'événements non hébergé WeatherSPEventProvider, que vous avez défini au cours de la leçon 6.

ms170427.Caution(fr-fr,SQL.90).gifAttention :
N'exécutez pas ces instructions individuellement. Elles ouvrent et ferment un lot d'événements et doivent être exécutées dans la même transaction. Pour exécuter ces requêtes, exécutez le script AddWeatherEvents.sql, décrit plus tard dans cette leçon.
-- Use the weather application's database.
USE TutorialWeather;
-- Start an event batch.
DECLARE @BatchID bigint;
EXEC dbo.NSEventBeginBatchWeatherData N'WeatherSPEventProvider', @BatchID OUTPUT;

Après avoir créé le lot d'événements, utilisez la procédure stockée NSEventWriteWeatherData pour ajouter trois événements de type météorologie. Vous devez fournir l'ID du lot d'événements, puis fournir les valeurs des champs d'événements. Il s'agit d'un événement exemple :

-- Submit events.
EXEC dbo.NSEventWriteWeatherData
    @EventBatchId=@BatchID,
    @City=N'Seattle',
    @Date=CONVERT(DATETIME, '2005-04-20 13:00:00', 120),
    @Low = 31,
    @High = 52,
    @Forecast=N'Sunny'

Après avoir utilisé cette procédure stockée pour soumettre les trois événements, vous utiliserez NSEventFlushBatchWeatherData pour fermer le lot d'événements et le soumettre à la base de données d'application.

-- Flush event batch.
EXEC dbo.NSEventFlushBatchWeatherData @BatchID;

Vous pouvez afficher l'ID du lot d'événements pour pouvoir utiliser les vues et les procédures stockées permettant d'afficher les informations relatives à ce lot d'événements.

-- Display event batch ID
SELECT @BatchID 'Event Batch';

Soumission d'événements à l'application Weather

Utilisez la requête AddWeatherEvents.sql pour ajouter des événements à l'application Weather.

Pour soumettre des événements à l'application Weather

  1. Dans l'Explorateur de solutions, développez Weather, Requêtes, puis ouvrez AddWeatherEvents.sql.

  2. Vérifiez le code Transact-SQL.

  3. Appuyez sur F5 pour exécuter la requête.

    Vous devez recevoir deux jeux de résultats. Le premier jeu de résultats retourne la valeur 3 pour EventCount et le deuxième retourne la valeur 1 pour l'ID du lot d'événements.

Affichage des données d'événements

Utilisez la requête ViewWeatherEvents.sql pour afficher les événements que vous venez d'ajouter.

Pour afficher les données d'événements

  1. Dans l'Explorateur de solutions, ouvrez ViewWeatherEvents.sql.

  2. Vérifiez le code Transact-SQL.

  3. Appuyez sur F5 pour exécuter la requête.

Si vous avez soumis plusieurs lots d'événements, modifiez le paramètre EventBatchId en conséquence.

Affichage des notifications

Au bout de 30 secondes, Notification Services doit avoir créé un fichier FileNotifications.htm dans le dossier Notifications. Ouvrez ce fichier pour visualiser les données de notification. Vous devez normalement recevoir trois notifications qui ressemblent à ce qui suit :

  • ID de la notification : 1 Nom de la classe de notification : ID de l'abonné WeatherNotifications : stephanie Adresse du périphérique : stephanie@adventure-works.com Nom du champ de protocole : Corps : Weather report for the city of Seattle [2/21/2005 2:01:00 PM] (Rapport de météorologie pour la ville de Seattle) : Sunny (Ensoleillé)
    Température minimale attendue : 31 F.
    Température maximale attendue : 52 F.
    Pour plus d'informations, consultez notre site Web à l'adresse suivante : http://www.msnbc.com/news/wea\_front.asp?ta=y\&tab=BW\&tp=\&czstr=Seattle.
    Merci d'utiliser SQL Server Notification Services.
  • ID de la notification : 2 Nom de la classe de notification : ID de l'abonné WeatherNotifications : david Adresse du périphérique : david@adventure-works.com Champs de protocole : Corps : Weather report for the city of Orlando [2/22/2005 2:01:00 AM] (Rapport de météorologie pour la ville d'Orlando) : Partly Cloudy (Nuageux)
    Température minimale attendue : 59 F.
    Température maximale attendue : 81 F.
    Pour plus d'informations, consultez notre site Web à l'adresse suivante : http://www.msnbc.com/news/wea\_front.asp?ta=y\&tab=BW\&tp=\&czstr=Orlando.
    Merci d'utiliser SQL Server Notification Services.
  • ID de la notification : 3 Nom de la classe de notification : ID de l'abonné WeatherNotifications : richard Adresse du périphérique : richard@adventure-works.com Champs de protocole : Corps : Weather report for the city of Seattle [2/21/2005 2:01:00 PM] (Rapport de météorologie pour la ville de Seattle) : Sunny (Ensoleillé)
    Température minimale attendue : 31 F.
    Température maximale attendue : 52 F.
    Pour plus d'informations, consultez notre site Web à l'adresse suivante : http://www.msnbc.com/news/wea\_front.asp?ta=y\&tab=BW\&tp=\&czstr=Seattle.
    Merci d'utiliser SQL Server Notification Services.

Étant donné que vous utilisez le protocole intégré de remise de fichier, les trois notifications générées à partir des événements se trouvent dans un seul fichier. Si vous soumettez plus d'événements, les autres notifications viendront s'ajouter dans ce fichier.

Notez également que chaque notification possède un en-tête. Il contient des informations sur la notification, y compris l'ID de l'abonné et l'adresse du périphérique. Le texte de la notification commence après « Corps : ».

Résolution des problèmes

Si vous ne voyez pas apparaître le fichier FileNotifications.htm dans le dossier Notifications au bout d'une minute, consultez le journal d'application dans l'Observateur d'événements Windows et recherchez les événements liés à Notification Services. Il se peut que le service Windows ne dispose pas de l'autorisation d'écrire dans le dossier Notifications.

Vous pouvez afficher les informations relatives aux notifications générées pour la classe de notification WeatherNotifications en exécutant la requête ViewNotifications.sql.

Pour afficher les informations relatives aux notifications

  1. Dans l'Explorateur de solutions, développez Weather, Requêtes, puis double-cliquez sur ViewNotifications.sql.

  2. Appuyez sur F5 pour exécuter la requête.

    Consultez la colonne DeliveryStatusDescription pour lire les informations sur la remise de la notification. En cas d'échecs, les informations qui s'y rapportent sont présentes dans le journal d'application.

  3. Fermez ViewSubscribersAndDevices.sql.

Étape suivante

Ce didacticiel vous a expliqué comment créer un prototype simple pour une application Notification Services. Pour poursuivre votre apprentissage sur Notification Services, reportez-vous aux sources d'information suivantes :

Voir aussi

Concepts

Didacticiel Notification Services

Autres ressources

Création de solutions de notification
Présentation de SQL Server Notification Services

Aide et Informations

Assistance sur SQL Server 2005