Partager via


Exemple : Utilisation d'une chronique d'événements pour les abonnements planifiés

Mis à jour : 17 juillet 2006

L'exemple suivant illustre l'utilisation d'une chronique d'événements avec une classe d'événements Notification Services pour fournir des données d'événements aux abonnements planifiés. Dans cet exemple, une application de mise à jour météorologique avertit chaque jour les utilisateurs des prévisions pour leur zone.

Scénario

Une application Notification Services collecte des données de prévisions météorologiques et envoie des notifications météorologiques aux abonnés. Chaque abonnement spécifie une ville pour laquelle les informations météo doivent être recueillies et une planification pour recevoir les notifications. Quand vient l'heure planifiée d'un abonnement, l'application envoie les prévisions météorologiques les plus récentes à l'abonné.

L'application contient une chronique d'événements qui stocke les prévisions météorologiques les plus récentes pour toutes les principales villes. Dans cette application, chaque lot d'événements contient les prévisions de toutes les villes prises en charge par l'application. Lorsqu'un lot de prévisions météorologiques arrive, la règle de chronique d'événements supprime les anciennes prévisions et ajoute les nouvelles à la chronique d'événements.

Table de chronique d'événements

Dans la classe d'événements, vous devez définir la table de chronique d'événements. La chronique utilise les mêmes colonnes que la classe d'événements ( City, Date, Low, High et Forecast).

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES
    WHERE TABLE_NAME = 'WeatherEventsChron'
        AND TABLE_SCHEMA = 'dbo')
    DROP TABLE dbo.WeatherEventsChron;
CREATE TABLE dbo.WeatherEventsChron
    (
    [City]nvarchar(35),
    [Date]datetime,
    [Low]float,
    [High]float,
    [Forecast]nvarchar(3500)
    PRIMARY KEY (City)
    );

Lors de la mise à jour de l'application, si des modifications sont apportées à la chronique d'événements, Notification Services supprime la table actuelle et en crée une nouvelle. Pour plus d'informations sur cette syntaxe, consultez Définition des tables de chroniques d'événements.

Règle de chronique d'événements

Dans la classe d'événements également, vous définissez une règle de chronique d'événements qui s'exécute à chaque fois qu'un lot d'événements arrive. La règle suivante supprime d'abord toutes les données de la chronique d'événements. La règle sélectionne ensuite le lot actuel d'événements de la vue WeatherEvents qui contient les événements actuels pour la classe d'événements, puis ajoute les événements à la chronique d'événements.

DELETE FROM dbo.WeatherEventsChron;
INSERT INTO dbo.WeatherEventsChron(City, Date, Low, High, Forecast)
SELECT e.City, e.Date, e.Low, e.High, e.Forecast
FROM dbo.WeatherEvents e;

Pour plus d'informations, consultez Définition des règles de chronique d'événements.

Règle planifiée utilisée pour générer des notifications

La règle planifiée utilisée pour générer des notifications utilise la chronique d'événements comme source d'événements. Cela garantit que les abonnements planifiés disposent de données d'événements.

INSERT INTO dbo.WeatherNotifications(SubscriberId,
    DeviceName, SubscriberLocale,
    City, Date, Low, High, Forecast)
SELECT s.SubscriberId,
    s.DeviceName, s.SubscriberLocale,
    c.City, c.Date, c.Low, c.High, c.Forecast
FROM dbo.WeatherSubscriptions s JOIN dbo.WeatherEventsChron c
    ON s.City = c.City;

Résultats

À 8h00, un nouveau lot d'événements arrive avec les dernières informations météorologiques. La règle de chronique d'événements est exécutée et remplace les anciennes données de chronique par les nouvelles données d'événement.

À 8h15, plusieurs abonnements planifiés doivent être évalués. Le générateur exécute la règle planifiée et génère les notifications en utilisant les données d'événements de la chronique d'événements.

Voir aussi

Concepts

Définition de chroniques pour une classe d'événements
Définition des tables de chroniques d'événements
Définition des règles de chronique d'événements
Exemple : comparaison de données d'événements afin d'éviter les notifications en double
Exemple : utilisation de valeurs de données d'événement élevées pour éviter les notifications en double

Aide et Informations

Assistance sur SQL Server 2005