Condividi tramite


Causa e risoluzione degli eventi di Notification Services

Data aggiornamento: 17 luglio 2006

Gli eventi di Notification Services sono suddivisi in quattro categorie: eventi di errore, di avviso, informativi e dettagliati. Tali categorie consentono di configurare i tipi di eventi che devono essere scritti da Notification Services nel registro applicazioni. Per ulteriori informazioni sulla configurazione della registrazione degli eventi, vedere Configurazione della registrazione degli eventi in Notification Services.

Tipi di evento

Nella tabella seguente sono elencati gli intervalli di ID degli eventi, la descrizione degli eventi inclusi in ogni intervallo e il corrispondente tipo di evento visualizzato nel Visualizzatore eventi.

Intervallo ID eventi Descrizione Tipo di evento

0 - 9999

Errori provenienti da tutte le origini, ad eccezione delle stored procedure estese

Errore

10000 - 19999

Avvisi provenienti da tutte le origini

Avviso

20000 - 29999

Informazioni provenienti da tutte le origini

Informazioni

30000 - 39999

Informazioni dettagliate provenienti da tutte le origini

Informazioni

Se si utilizza un'applicazione di monitoraggio dei log, è consigliabile tenere sotto controllo gli errori e gli avvisi inclusi nell'intervallo da 0 a 19999. Il monitoraggio degli eventi informativi è meno importante e, in genere, viene eseguito per tenere traccia di attività specifiche quali l'avvio e l'interruzione dei servizi.

[!NOTA] Monitorare gli eventi utilizzando i relativi ID univoci. Non analizzare le descrizioni degli eventi per cercare testo specifico in quanto quest'ultimo potrebbe variare a seconda delle impostazioni internazionali o nelle versioni successive di Notification Services.

Causa e risoluzione degli eventi

Nell'elenco seguente sono inclusi gli eventi che si verificano più di frequente in Notification Services e sono indicate le soluzioni possibili per tali eventi.

Numero evento Messaggio, causa e soluzione

1006

Tentativo di apertura del database richiesto non riuscito.

Causa

Questo errore è mappato all'errore 4060 di SQL Server. L'errore indica che l'utente corrente non dispone di autorizzazioni sufficienti per l'accesso al database specificato.

La voce del log eventi per questo errore include la descrizione dell'errore di SQL Server che rappresenta la causa. La descrizione è analoga alla seguente:

    Impossibile aprire il database richiesto nell'account di accesso 'database_name'. Accesso non riuscito.

Soluzione

Verificare che l'account utilizzato da Notification Services disponga di un account di accesso di SQL Server e delle autorizzazioni nel database a cui si riferisce il messaggio di errore. Per ulteriori informazioni, vedere Configurazione delle autorizzazioni di SQL Server per un'istanza di Notification Services.

1008

Nome delle regole di confronto specificato non valido. Consultare la documentazione in linea di SQL Server per informazioni sui nomi validi.

Causa

Questo errore è mappato all'errore 448 di SQL Server. L'errore indica che il nome delle regole di confronto specificato, in genere nella definizione dell'applicazione, non è valido.

La voce del log eventi per questo errore include la descrizione dell'errore di SQL Server che rappresenta la causa. La descrizione è analoga alla seguente:

    Regole di confronto 'collation_name' non valide.

Soluzione

Le regole di confronto possono essere definite in posizioni diverse nella definizione dell'applicazione. Cercare le informazioni relative a collation_name indicate nella voce del log eventi e sostituirle con un nome delle regole di confronto valido. Per ulteriori informazioni sull'ordinamento delle regole di confronto, vedere COLLATE (Transact-SQL).

1009

Periodo di timeout trascorso prima del completamento di un'istruzione Transact-SQL.

Causa

Questo errore si verifica quando una query o una stored procedure non finisce entro il periodo di timeout specificato. In genere, l'errore indica che SQL Server è troppo occupato. Se l'esecuzione di una regola eventi o di una regola di sottoscrizione supera il periodo di timeout specificato nella definizione dell'applicazione, viene restituito un messaggio di errore diverso.

La voce del log eventi per questo errore include la descrizione dell'errore effettivo che rappresenta la causa.

Soluzione

Esaminare la voce del log eventi per ottenere ulteriori informazioni sull'azione per la quale si è verificato il timeout.

Se l'errore è stato causato dalla rimozione dei dati, potrebbe essere necessario rimuovere le notifiche e gli eventi scaduti. Per ulteriori informazioni, vedere Rimozione di dati dell'applicazione obsoleti.

In Notification Services per molte operazioni viene utilizzato un valore di timeout di 30 secondi. Se possibile, ridurre l'elaborazione dell'azione interessata in modo che possa essere completata entro 30 secondi.

1010

Regole di confronto non corrispondenti nel database dell'istanza principale e nel database dell'applicazione.

Causa

Questo errore è mappato all'errore 446 di SQL Server. L'errore indica che nell'operazione specificata sono stati utilizzati oggetti con regole di confronto non corrispondenti.

La voce del log eventi per questo errore include la descrizione dell'errore effettivo che rappresenta la causa. La descrizione è analoga alla seguente:

Impossibile risolvere il conflitto tra le regole di confronto per l'operazione operation_name.

Soluzione

Determinare l'operazione che ha provocato l'errore dalla voce del log eventi e verificare che gli argomenti dell'operazione specificata dispongano di regole di confronto corrispondenti. Se, ad esempio, nella stessa tabella sono presenti due colonne con, rispettivamente, regole di confronto Greek e Latin, l'errore può essere provocato da una clausola WHERE come la seguente:

    WHERE GreekCol = LatinCol

All'errore risultante sarà associata la descrizione aggiuntiva seguente:

    Impossibile risolvere il conflitto tra le regole di confronto per l'operazione Uguale a.

Per consentire il corretto funzionamento del sistema, è necessario risolvere il problema indicato dall'errore.

Per ulteriori informazioni, vedere COLLATE (Transact-SQL).

1011

Tentativo di accesso a SQL Server non riuscito.

Causa

Questo errore è mappato all'errore 18456 di SQL Server. L'errore indica che un determinato utente non dispone delle autorizzazioni appropriate per l'accesso.

La voce del log eventi per questo errore include la descrizione dell'errore di SQL Server che rappresenta il trigger. La descrizione è analoga alla seguente:

    Accesso non riuscito per l'utente user_name.

Soluzione

Verificare che al nome utente indicato nel messaggio di errore siano associate le autorizzazioni appropriate.

Per ulteriori informazioni, vedere Risoluzione dei problemi comuni di Notification Services.

2009

Impossibile creare un'istanza del provider di eventi.

Causa

In Notification Services non è stato possibile creare un'istanza del provider di eventi. Questo errore può verificarsi se un provider di eventi personalizzato non è stato creato utilizzando la versione 2.0.50727 di .NET Framework. Quando in Notification Services e in un componente personalizzato vengono utilizzate versioni diverse di .NET Framework, le differenze nelle librerie di classi possono provocare errori dell'applicazione.

Soluzione

Quando possibile, creare i componenti personalizzati utilizzando la versione 2.0.50727 di .NET Framework. Se è necessario creare componenti personalizzati utilizzando altre versioni di .NET Framework, è possibile fare in modo che in Notification Services venga utilizzata la stessa versione. A tale scopo, aggiungere un nodo <startup> al file NSService.exe.config. Questo file si trova nella cartella vN.N.N.N\Bin di Notification Services. Nell'esempio seguente viene illustrato il nodo <startup>:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

<startup>

<supportedRuntime version="v2.1"/>

<supportedRuntime version="v2.0.50727"/>

</startup>

...

Gli elementi <supportedRuntime> consentono di limitare la versione di .NET Framework che può essere utilizzata da Notification Services. L'ordine delle versioni elencate determina l'ordine utilizzato da Notification Services per tentare di caricare le versioni di .NET Framework. Nell'esempio precedente, tramite Notification Services viene prima eseguito un tentativo di caricare la versione 2.1 di .NET Framework. Se questa versione non è disponibile, Notification Services tenta di caricare la versione 2.0.50727. Si noti che la versione 2.1 non rappresenta un numero di versione reale, ma solo di un esempio utilizzato a scopo dimostrativo.

Per applicare le modifiche apportate al file NSService.exe.config, è necessario riavviare l'istanza di Notification Services.

2023

Impossibile trovare il nome della classe di provider di eventi specificato nell'assembly indicato. Verificare che il nome della classe e il nome dell'assembly nella definizione dell'applicazione siano corretti.

Causa

Questo errore si verifica quando l'host del provider non avvia un provider di eventi in quanto l'assembly specificato nelle impostazioni dei provider nella definizione dell'applicazione non contiene la classe di provider di eventi specificata. Se si verifica questo errore, il provider di eventi non verrà eseguito.

In Notification Services viene creata un'istanza del provider di eventi caricando l'assembly specificato dalla proprietà AssemblyName della definizione dell'applicazione e quindi creando un oggetto del tipo specificato nella proprietà ClassName. Questo errore indica che tramite Notification Services non è stato possibile creare un'istanza del nome della classe dalla DLL specificata. Spesso la proprietà AssemblyName specifica la DLL sbagliata oppure la proprietà ClassName specifica la classe sbagliata.

La voce del log eventi per questo errore include una descrizione dell'eccezione generata.

Soluzione

Verificare innanzitutto che le proprietà ClassName e AssemblyName siano specificate correttamente. Se si apportano modifiche, aggiornare l'applicazione di Notification Services e quindi attivare gli eventi. Tramite l'host del provider verrà quindi eseguito un tentativo di riavviare il provider di eventi. Se il servizio è stato interrotto durante l'aggiornamento, l'host del provider tenterà di riavviare il provider di eventi al riavvio del servizio.

4012

È presente un quantum completato che include l'ora reale corrente.

Causa

In condizioni normali, l'intervallo di tempo elaborato da Notification Services deve essere nel passato. Questo errore si verifica per lo più se nel server che ospita il database è stata modificata l'ora di sistema.

Soluzione

Impostare l'ora corretta nel sistema di database.

6007

Impossibile caricare l'assembly contenente il protocollo di recapito.

Causa

Questo errore si verifica quando tramite il server di distribuzione non è possibile caricare l'assembly specificato per un protocollo di recapito personalizzato.

Soluzione

Nella configurazione dell'istanza verificare la proprietà relativa ai protocolli per controllare che il nome di assembly specificato per il protocollo personalizzato sia corretto. Il nome dell'assembly deve contenere un percorso completo. Se, ad esempio, l'assembly è denominato myprotocol.dll e si trova nella directory C:\bin\CustomComponents, è necessario specificare il nome dell'assembly indicando C:\bin\CustomComponents\myprotocol.dll.

Il nome dell'assembly specificato deve puntare a un assembly di codice gestito valido. È possibile verificare se il file è un assembly di codice gestito provando ad aprire lo strumento ildasm.exe, disponibile in Microsoft .NET Framework SDK.

9028

Versione dell'assembly non corrispondente alla versione del database.

Causa

Questo evento si verifica quando la versione di Notification Services non corrisponde alla versione archiviata nel database dell'istanza.

In Notification Services è necessario che la versione del file eseguibile del servizio, NSService.exe, corrisponda a quella del database in cui è stata eseguita l'ultima modifica, sia che si tratti di creazione o di aggiornamento. La voce del log eventi include il valore di AssemblyVersion, che indica la versione del file eseguibile del servizio, e il valore di DatabaseVersion.

Soluzione

È possibile risolvere questa situazione in tre modi diversi:

  • Eseguire il file eseguibile del servizio la cui versione corrisponde a quella dei database dell'istanza.
  • Aggiornare i database dell'istanza alla versione del file eseguibile. Per ulteriori informazioni, vedere Migrazione delle istanze di Notification Services.
  • Ricreare i database dell'istanza. Questa soluzione deve essere utilizzata solo come ultima risorsa, in quanto tutte le informazioni incluse nell'istanza andranno perse.

9041

Database creato con o aggiornato a una diversa edizione di Notification Services. Utilizzare l'edizione di Notification Services prevista dal database.

Causa

Questo evento si verifica quando l'edizione di Notification Services, ad esempio Standard o Enterprise, non corrisponde all'edizione archiviata nel database dell'istanza.

In Notification Services è necessario che l'edizione del file eseguibile del servizio, NSService.exe, corrisponda a quella del database dell'istanza. Il corpo della voce del log eventi contiene l'edizione di Notification Services, che corrisponde all'edizione del file eseguibile del servizio, e l'edizione del database. Questi valori devono essere identici.

Soluzione

È possibile risolvere questa situazione in tre modi diversi:

  • Se si dispone di un'edizione del file NSService.exe corrispondente all'edizione dei database dell'istanza, eseguire tale file NSService.exe.
  • Se l'edizione dei database dell'istanza è precedente a quella del file NSService.exe, aggiornare i database dell'istanza all'edizione del file eseguibile. Per ulteriori informazioni, vedere Migrazione delle istanze di Notification Services.
  • Come ultima risorsa, ricreare i database dell'istanza. Fare attenzione in quanto questa operazione comporta la rimozione di tutte le informazioni incluse nell'istanza.

16001

Elaborazione di un elemento di lavoro interrotta. Troppi errori consecutivi nel canale di recapito.

Causa

Questo avviso si verifica quando il server di distribuzione interrompe l'elaborazione di un elemento di lavoro in quanto si sono verificati troppi errori di recapito consecutivi. In genere, indica un tipo di condizione di errore prolungata nel canale di recapito.

Soluzione

Esaminare lo stato di recapito delle singole notifiche per determinare la natura degli errori e le azioni da intraprendere per risolvere il problema.

È possibile specificare quanti errori di recapito consecutivi devono verificarsi prima che il server di distribuzione interrompa l'elaborazione dell'elemento di lavoro. A tale scopo, è possibile specificare un valore per l'impostazione FailuresBeforeAbort nella sezione ProtocolExecutionSettings della definizione dell'applicazione per ogni protocollo supportato dalla classe di notifica. Se non si specifica un valore per la proprietà, verrà utilizzato il valore predefinito 20.

4093 - 4099

Impossibile aggiornare un contatore delle prestazioni.

Causa

Tramite Notification Services non è stato possibile aggiornare i contatori delle prestazioni. Notification Services tenterà di aggiornare i contatori nell'intervallo di quantum successivo.

Se questo errore si verifica parecchie volte, è probabile che i contatori delle prestazioni di Notification Services siano danneggiati e che non potranno essere aggiornati fino a quando il problema non viene risolto. Le cause possono essere diverse, ad esempio una voce del Registro di sistema danneggiata e problemi in altre DLL di monitoraggio delle prestazioni.

Soluzione

Se non è necessario aggiornare i contatori delle prestazioni di Windows, è possibile ignorare questo avviso. Per consigli sulla soluzione del problema e ulteriori informazioni, vedere l'articolo Risolvere il contatore danneggiato di prestazioni di Notification Services della Knowledge Base.

Vedere anche

Attività

Visualizzazione degli eventi di Notification Services

Concetti

Formato degli eventi di Notification Services

Altre risorse

Errori ed eventi di Notification Services
Utilizzo dei messaggi di evento

Guida in linea e informazioni

Assistenza su SQL Server 2005

Cronologia modifiche

Versione Cronologia

17 luglio 2006

Contenuto modificato:
  • Aggiunta dell'elenco dei messaggi di evento più comuni e delle relative soluzioni.