Domande frequenti su Notification Services

Microsoft ha raccolto l'elenco seguente di domande frequenti sottoposte dagli utenti di Microsoft Notification Services.

Domande e risposte

Qual è la differenza tra Notification Services e SQL Server Agent?

SQL Server Agent è stato progettato in modo specifico per l'invio di messaggi agli amministratori di SQL Server o per l'esecuzione di operazioni predefinite in base a particolari condizioni del server o dei database.

Notification Services gestisce invece la raccolta dei dati da praticamente qualsiasi origine, stabilisce una corrispondenza tra gli eventi e le sottoscrizioni definite da numerosi utenti e quindi invia messaggi formattati tramite praticamente tutti i protocolli a quasi ogni dispositivo in grado di ricevere messaggi.

Sebbene sia possibile personalizzare SQL Server Agent per inviare messaggi a molti utenti che utilizzino trigger, SQL Server Agent non è progettato per supportare migliaia o milioni di utenti. Notification Services è in grado di supportare milioni di utenti, inviando milioni di notifiche al giorno.

Inoltre, in quanto piattaforma di sviluppo Notification Services include funzionalità che consentono di ridurre i tempi di implementazione ed esecuzione di un'applicazione. SQL Server Agent non è una piattaforma di sviluppo e pertanto non offre funzionalità analoghe.

Per ulteriori informazioni su Notification Services, vedere Introduzione a SQL Server Notification Services.

Si possono eseguire più applicazioni di notifica in un solo server?

Sì. Si possono implementare varie istanze di Notification Services. Ogni istanza può ospitare una o più applicazioni. È possibile eseguire più istanze e anche più versioni di Notification Services in un solo server.

Per stabilire il numero di applicazioni che è possibile eseguire in un unico server, è necessario stimare il carico di elaborazione generato da ogni applicazione nel server. L'esecuzione di un numero eccessivo di applicazioni in un solo server comporta un peggioramento delle prestazioni.

Per ulteriori informazioni, vedere Pianificazione di un sistema Notification Services.

Quanto tempo richiede il processo di generazione di una notifica da un evento?

Innanzitutto, non tutte le sottoscrizioni sono associate a eventi. Per alcune sottoscrizioni viene impostata una pianificazione per le notifiche. In questo caso, le notifiche vengono inviate in base alla pianificazione definita e non all'arrivo dell'evento.

Per le notifiche guidate da eventi, la latenza tra il verificarsi dell'evento e il recapito della notifica dipende in gran parte dalla struttura dell'applicazione. Le possibili cause della latenza delle notifiche sono le seguenti:

  • Gli eventi devono essere inviati a Notification Services. Una possibile causa di latenza è rappresentata dal tempo che intercorre tra il verificarsi di un evento e l'inoltro dell'evento in un batch da parte dal provider di eventi.
  • Il generatore funziona in base a una pianificazione determinata dal valore della proprietà QuantumDuration del generatore. Se la durata del quantum è di 60 secondi, è possibile che si verifichi un ritardo di 60 secondi prima dell'utilizzo di un batch di eventi per la creazione delle notifiche.
  • Il generatore deve definire le corrispondenze tra eventi e sottoscrizioni per generare le notifiche. Tale operazione viene eseguita da una o più query Transact-SQL. Le prestazioni di queste query possono determinare la latenza di generazione delle notifiche. In termini generali, maggiore è il numero di eventi e sottoscrizioni valutato in un determinato momento, maggiore è la durata del processo. Questo tipo di latenza può essere ridotta tramite l'ottimizzazione di regole e indici.
  • Il server di distribuzione funziona in base a una pianificazione determinata dal valore della proprietà QuantumDuration del server di distribuzione. Come nel caso del generatore, se la durata del quantum è di 60 secondi, è possibile che si verifichi un ritardo di 60 secondi prima che un batch di notifiche venga elaborato dal server di distribuzione.
  • Il server di distribuzione deve formattare le notifiche e prepararle per il recapito. La formattazione viene eseguita dall'oggetto formattatore del contenuto. L'applicazione di una formattazione complessa può richiedere tempi più lunghi rispetto a una formattazione semplice. Inoltre, anche l'invio della notifica formattata a un servizio di recapito richiede tempo. Ad esempio, l'invio di una notifica a un server HTTP può richiedere fino a 30 secondi.

Dopo che il server di distribuzione ha inviato la notifica al servizio di recapito, ad esempio un server SMTP (Simple Mail Transfer Protocol), Notification Services non esercita più alcun controllo sulla latenza di invio delle notifiche.

È necessario installare Microsoft Visual Studio 2005 per sviluppare applicazioni di Notification Services?

No, Microsoft Visual Studio non è necessario, ma può semplificare le attività di sviluppo.

Se si desidera sviluppare un'applicazione che utilizza i provider di eventi e i formattatori del contenuto standard, è possibile realizzare l'applicazione tramite la creazione di un file di definizione dell'applicazione (ADF) XML e quindi definire un'istanza per ospitare l'applicazione tramite la creazione di un'istanza del file di configurazione XML (ICF). Questi file XML possono essere creati con qualsiasi editor di testo o XML.

Se si desidera generare un'applicazione utilizzando Notification Services Management Objects (NMO), o si stanno creando interfacce di gestione delle sottoscrizioni, provider di eventi personalizzati e formattatori del contenuto, è possibile utilizzare l'ambiente di sviluppo di Visual Studio per creare questi oggetti. Tuttavia, non è necessario utilizzare espressamente Visual Studio. È possibile utilizzare qualsiasi editor di testo per scrivere il codice, quindi è necessario installare Microsoft .NET Framework SDK e compilare il codice.

Quali sono i vantaggi rispettivi di un provider di eventi hosted e di un provider di eventi non hosted?

L'implementazione di un provider hosted significa in genere un minore impegno in termini di sviluppo, perché l'istanza di Notification Services carica l'API di Notification Services e gestisce la pianificazione per l'attivazione del provider di eventi. I provider hosted possono inoltre essere attivati e disattivati come qualsiasi altro componente e servizio di Notification Services.

I provider di eventi non hosted risultano utili se è disponibile un'infrastruttura esistente utilizzabile per l'inoltro degli eventi, come un'applicazione CRM o un'applicazione Web. I provider di eventi non hosted sono elencati nel file di definizione dell'applicazione (ADF) in modo che le classi di sottoscrizione possano farvi riferimento.

Se di dispone già di un'applicazione di gestione delle sottoscrizioni scritta in codice gestito, è possibile chiamare l'API dall'applicazione?

Notification Services supporta interoperabilità COM per sottoscrizioni semplici. Tuttavia, non è possibile creare sottoscrizioni basate su condizioni utilizzando l'interoperabilità COM perché le classi nello spazio dei nomi Microsoft.SqlServer.NotificationServices.Rules non supportano l'interoperabilità COM.

Per ulteriori informazioni, vedere Interoperabilità COM con Notification Services.

Vedere anche

Attività

Risoluzione dei problemi comuni di Notification Services
Configurazione della registrazione degli eventi in Notification Services
Utilizzo dei messaggi di evento

Guida in linea e informazioni

Assistenza su SQL Server 2005