Esempio: Utilizzo di un cronologia eventi per le sottoscrizioni pianificate

Data aggiornamento: 17 luglio 2006

Nell'esempio seguente viene illustrato come utilizzare una cronologia degli eventi con una classe di evento di Notification Services per specificare i dati degli eventi per sottoscrizioni pianificate. In questo esempio, un'applicazione di aggiornamento meteo notifica agli utenti le previsioni per ogni giorno.

Scenario

Un'applicazione di Notification Services raccoglie i dati relativi alle previsioni del tempo e invia le relative notifiche ai sottoscrittori. In ogni sottoscrizione vengono specificate una città per cui devono essere raccolte informazioni meteo e una pianificazione per la ricezione delle notifiche. Al momento pianificato per una sottoscrizione, l'applicazione invia le previsioni meteo più recenti di tale città al sottoscrittore.

L'applicazione dispone di una cronologia degli eventi in cui sono archiviate le previsioni meteo più recenti per tutte le città principali. In questa applicazione, ogni batch di eventi contiene le previsioni per tutte le città supportate dall'applicazione. Alla ricezione di un batch di previsioni meteo, la regola cronologia eventi elimina le previsioni precedenti e aggiunge le nuove alla cronologia.

Tabella di cronologia degli eventi

Nella classe di evento è necessario definire la tabella della cronologia degli eventi. La cronologia utilizza le stesse colonne della classe di evento (City, Date, Low, High, e 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)
    );

Quando si aggiorna l'applicazione, se alla cronologia degli eventi sono state apportate modifiche, Notification Services elimina la tabella corrente e crea una nuova tabella. Per ulteriori informazioni su questa sintassi, vedereDefinizione di tabelle della cronologia degli eventi

Regola di cronologia degli eventi

Nella classe di evento viene inoltre definita una regola di cronologia degli eventi eseguita all'arrivo di ogni batch di eventi. La regola seguente anzitutto elimina tutti i dati dalla cronologia degli eventi. Quindi la regola seleziona il batch di eventi corrente dalla vista WeatherEvents, che include gli eventi correnti per la classe di evento e aggiunge gli eventi alla cronologia degli eventi.

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;

Per ulteriori informazioni, vedere Definizione delle regole di cronologia degli eventi.

Regola pianificata utilizzata per generare le notifiche

La regola pianificata utilizzata per generare le notifiche utilizza la cronologia degli eventi come origine degli eventi. Questo assicura che le sottoscrizioni pianificate includano i dati degli eventi.

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;

Risultati

Alle 8.00, un nuovo batch di eventi arriva con le informazioni meteo più recenti. La regola di cronologia degli eventi viene eseguita e sostituisce i dati di cronologia precedenti con i nuovi dati degli eventi.

Alle 8:15 è prevista la valutazione di varie sottoscrizioni pianificate. Il generatore esegue la regola pianificata e genera le notifiche utilizzando i dati degli eventi nella cronologia degli eventi.

Vedere anche

Concetti

Definizione delle cronologie per una classe di evento
Definizione di tabelle della cronologia degli eventi
Definizione delle regole di cronologia degli eventi
Esempio: Confronto tra dati degli eventi per impedire la duplicazione delle notifiche
Esempio: Utilizzo di valori massimi di dati per impedire la duplicazione delle notifiche

Guida in linea e informazioni

Assistenza su SQL Server 2005