Cause and Resolution of Notification Services Events

Notification Services events are divided into four categories: error, warning, information, and verbose. You use these categories to configure which types of events Notification Services writes to the Application log. For more information about how to configure event logging, see Configuring Notification Services Event Logging.

Event Types

The following table shows the event ID ranges, the description of events in each range, and the event type as shown in Event Viewer.

Event ID range Description Event type

0 - 9999

Errors from all sources except extended stored procedures

Error

10000 - 19999

Warnings from all sources

Warning

20000 - 29999

Information from all sources

Information

30000 - 39999

Verbose information from all sources

Information

If you are using a log monitoring application, you should monitor for errors and warnings in the 0 - 19999 range. Monitoring information events is less critical, and is usually done to track specific activities, such as starting and stopping services.

Note

Monitor for events using the unique event IDs. Do not parse event descriptions for specific text because the text might change based on locale settings or in future versions of Notification Services.

Cause and Resolution of Events

The following list includes the events most frequently encounter by users of Notification Services, and possible resolutions for those events.

Event Number Message, Cause, and Resolution

1006

An attempt to open the requested database failed.

Cause

This error maps to SQL Server error 4060. This error indicates that the current user has insufficient permissions to log in to the specified database.

The event log entry for this error includes the description of the SQL Server error that caused it. This description resembles the following:

    Cannot open database requested in login 'database_name'. Login fails.

Resolution

Check that the account that is used by Notification Services has a SQL Server login account and permissions in the database noted in the error message. For more information, see Configuring SQL Server Permissions for an Instance of Notification Services.

1008

The specified collation name is not valid. See SQL Server Books Online for valid names.

Cause

This error maps to SQL Server error 448. This error indicates that the specified collation name (generally in the application definition) is not valid.

The event log entry for this error includes the description of the SQL Server error that caused it. This description resembles the following:

    Invalid collation 'collation_name'.

Resolution

There are several places in the application definition where collations can be specified. Search for the collation_name information noted in the event log entry and replace it with a valid collation name. For more information about sorting collations, see COLLATE (Transact-SQL).

1009

The timeout period elapsed prior to the completion of a Transact-SQL statement.

Cause

This error occurs when a query or stored procedure does not finish within the specified time out. It typically indicates that SQL Server is too busy. A different error message is returned if the execution of an event rule or a subscription rule exceeds the time out that is specified in the application definition.

The event log entry for this error includes the description of the actual error that caused it.

Resolution

Examine the event log entry for more information about the action that timed out.

If vacuuming was the cause of the failure, you might have to remove expired events and notifications. For more information, see Removing Obsolete Application Data.

Notification Services uses a time out value of 30 seconds for many operations. If it is possible, reduce the processing of the affected action so that it can complete within 30 seconds.

1010

There is a collation mismatch between the main instance database and the application database.

Cause

This error maps to SQL Server error 446. This error that the specified operation was given objects with mismatched collations.

The event log entry for this error includes the description of the actual error that caused it. This description resembles the following:

Cannot resolve collation conflict for operation_name operation.

Resolution

Determine the operation that failed from the event log entry and make sure that the arguments to the specified operation have matching collations. For example, if you have two columns in the same table with Greek and Latin collations, respectively, a WHERE clause such as the following will cause this error:

    WHERE GreekCol = LatinCol

The resulting error will have the following additional description:

    Cannot resolve collation conflict for equal to operation.

The problem noted in this error must be resolved for the system to function correctly.

For more information, see COLLATE (Transact-SQL).

1011

An attempt to log in to SQL Server failed.

Cause

This error maps to SQL Server error 18456. This error indicates that a given user does not have the appropriate permissions to log in.

The event log entry for this error includes the description of the SQL Server error that triggered it. This description resembles the following:

    Login failed for user user_name.

Resolution

Check that the user name noted in the error message has the appropriate permissions.

For more information, see Resolving Common Notification Services Issues.

2009

Notification Services failed to instantiate the event provider.

Cause

Notification Services could not create an instance of the event provider. This error can occur if a custom event provider was not built with version 2.0.50727 of the .NET Framework. When Notification Services and a custom component use different versions of the .NET Framework, differences in the class libraries can cause application errors.

Resolution

When it is possible, build custom components with version 2.0.50727 of the .NET Framework. If you must build custom components with other builds of the .NET Framework, you can force Notification Services to use the same version. To do this, add a <startup> node to the NSService.exe.config file. This is in the vN.N.N.N\Bin folder of Notification Services. The following example shows the <startup> node:

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

<configuration>

<startup>

<supportedRuntime version="v2.1"/>

<supportedRuntime version="v2.0.50727"/>

</startup>

...

The <supportedRuntime> elements restrict the versions of the .NET Framework that Notification Services can use. The order of the listed versions determines the order in which Notification Services tries to load the .NET Framework versions. In the previous example, Notification Services will first try to load version 2.1 of the .NET Framework. If it is not available, Notification Services will try to load version 2.0.50727 of the .NET Framework. Be aware that version 2.1 is not a real version number. It is just an example used for illustration.

You must restart the instance of Notification Services to apply changes made to NSService.exe.config.

2023

The specified event provider class name could not be found in the given assembly. Make sure that the class name and assembly name in the application definition are correct.

Cause

This error occurs when the provider host does not start an event provider because the assembly specified in the Providers setting of the application definition does not contain the specified event provider class. The event provider will not be running if this error occurs.

Notification Services creates an instance of the event provider by loading the assembly that is specified by the AssemblyName property of the application definition, and then creating an object of the type specified in the ClassName property. This error indicates that Notification Services could not create an instance of the class name from the given DLL. Most often, the wrong DLL is specified by the AssemblyName property, or the wrong class is specified by the ClassName property.

The event log entry for this error contains a description of the exception that was thrown.

Resolution

First, make sure that the ClassName and AssemblyName properties are specified correctly. If you make changes, update the Notification Services application, and then enable events. The provider host will then try to restart the event provider. If the service has been stopped during the update, the provider host will try to restart the event provider when the service is restarted.

4012

There is a completed quantum which includes the current real time.

Cause

In normal operation, the time interval that Notification Services processes should occur in the past. This error is most likely to occur if the system clock on the server hosting the database has been changed.

Resolution

Reset the clock on the database system to the correct time.

6007

The assembly containing the delivery protocol could not be loaded.

Cause

This error occurs when the distributor cannot load the assembly that is specified for a custom delivery protocol.

Resolution

In your instance configuration, check the Protocols property to make sure that the assembly name specified for your custom protocol is correct. The assembly name must contain a full path. For example, if the assembly is called myprotocol.dll and is located in the C:\bin\CustomComponents directory, you must specify the assembly name as C:\bin\CustomComponents\myprotocol.dll.

The assembly name that you specify must point to a valid managed code assembly. You can verify whether the file is a managed code assembly by trying to open it in the ildasm.exe tool that is available in the Microsoft .NET Framework SDK.

9028

The assembly version does not match the database version.

Cause

This event occurs when the version of Notification Services does not match the version stored in the instance database.

Notification Services requires that the version of the service executable file (NSService.exe) match the version of the database that was last modified (created, updated, or upgraded). The event log entry contains the AssemblyVersion, which is the version of the service executable, and the DatabaseVersion.

Resolution

There are three possible resolutions to this situation:

  • Run the service executable whose version matches the version of the instance databases.
  • Upgrade the instance databases to the executable's version. For more information, see Migrating Notification Services Instances.
  • Re-create the instance databases. This should be a last resort, as all information in the instance will be lost.

9041

The database was created with or upgraded to a different edition of Notification Services. Use the Notification Services edition that the database expects.

Cause

This event occurs when the edition of Notification Services, such as Standard or Enterprise, does not match the edition stored in the instance database.

Notification Services requires that the edition of the service executable file (NSService.exe) match the edition in the instance database. The body of the event log entry contains the Notification Services edition, which is the edition of the service executable file, and the database edition. These values must be identical.

Resolution

There are three possible resolutions to this situation:

  • If you have an edition of the NSService.exe file that matches the edition of the instance databases, run that NSService.exe.
  • If your instance databases are an earlier edition than the NSService.exe file, upgrade the instance databases to the executable edition. For more information, see Migrating Notification Services Instances.
  • As a last resort, re-create the instance databases. Be aware that this action removes all information in the instance.

16001

The processing of a work item was aborted due to too many consecutive failures on the delivery channel.

Cause

This warning occurs when the distributor abandons the processing of a work item because too many consecutive delivery failures have occurred. It usually indicates some kind of prolonged failure condition on the delivery channel.

Resolution

Examine the delivery status of the individual notifications to determine the nature of the failures and what action to take to correct the condition.

You can control the number of consecutive delivery failures that must occur before the distributor abandons the work item. You do this by specifying a value for the FailuresBeforeAbort setting in the ProtocolExecutionSettings section of the application definition, for each protocol supported by your notification class. If you do not supply a value for this property, the default value of 20 is used.

4093 - 4099

A performance counter could not be updated.

Cause

Notification Services could not update performance counters. Notification Services will try to update the counters at the next quantum interval.

If this error occurs several times, it is likely that the Notification Services performance counters are corrupted and will not be updated until the corruption is resolved. There are several possible reasons for the corruption, including a corrupted entry in the registry and problems in other performance monitor DLLs.

Resolution

If you do not need the Windows Performance counters to be updated, you can safely ignore this warning. For the recommended resolution and additional information, see the "Resolve Corrupted Notification Services Performance Counters" Knowledge Base article.

See Also

Tasks

Viewing Notification Services Events

Concepts

Notification Services Event Format

Other Resources

Notification Services Errors and Events
Using Event Messages

Help and Information

Getting SQL Server 2005 Assistance

Change History

Release History

17 July 2006

Changed content:
  • Added list of the most common event messages and their resolutions.