An error occurred while the Vacuumer stored procedure was running. Run the stored procedure to complete the data removal process.

Details
Product: SQL Server Notification Services
Event ID: 8013
Source: NotificationServices
Version: 2.0.9999.9
Message: An error occurred while the Vacuumer stored procedure was running. Run the stored procedure to complete the data removal process.
   
Explanation
An excess of obsolete events, notifications, and quanta in the database leads to performance degradation. This error occurs when vacuuming is overwhelmed by too much obsolete data.

When this event is logged during a scheduled vacuuming interval defined in the ADF, vacuuming is retried up to five times. If this event is logged five times during a vacuuming interval, then there is a problem that must be investigated.

The body of the event log entry contains details on the cause of the error.

   
User Action
First check that vacuuming is scheduled during periods of low system activity, such as at night or on the weekend. If the vacuuming schedule is incorrect, update the <vacuumschedule> element in the ADF, and then update the application using NSControl Update.

If the application must remain online and enabled, and therefore cannot be updated, then perform vacuuming manually by running the NSVacuum stored procedure in the application database.</vacuumschedule>

Related:

This application is using too many files.

Details
Product: SQL Server Notification Services
Event ID: 7408
Source: NotificationServices
Version: 2.0.9999.9
Message: This application is using too many files.
   
Explanation
This error occurs when you define more than 1000 file delivery channels in your configuration file.

In your configuration file you can specify an arbitrary number of delivery channels. Each delivery channel uses one delivery protocol. One standard delivery protocol is the File delivery protocol, which appends notifications to a single big file. Notification Services keeps a running list of files used by the File delivery protocol. This list has a maximum size of 1000 for each instance of Notification Services.

   
User Action
First inform Microsoft of this error. The limit of 1000 files used by the File delivery protocol is a coded limit with this version of Notification Services, but there may be a substantial customer need for a larger limit.

Then consider one or more of the following alternatives:

Consolidate some of the files used by the File delivery protocol.

If your Notification Services instance has more than one application, each with its own unique files, separate your applications into multiple Notification Service instances. The limit of 1000 files applies to the Notification Services instance, so if you have two instances you can write up to 2000 files, and so on.

If you cannot use multiple Notification Services instances, consider writing a custom delivery protocol. Your protocol need not have a limit on the number of files written. For information about how to develop custom components, see Notification Services Books Online.

Related:

The file could not be closed.

Details
Product: SQL Server Notification Services
Event ID: 7406
Source: NotificationServices
Version: 2.0.9999.9
Message: The file could not be closed.
   
Explanation
This error occurs when the file delivery protocol is unable to close a notifications file. This is typically caused by some unexpected situation such as a full disk or a broken network connection.
   
User Action
Identify the reason why the notifications file could not be closed. Check the amount of free space on the disk, the state of network connections, and open file handles.

Related:

The file has not been added to the internal file cache.

Details
Product: SQL Server Notification Services
Event ID: 7404
Source: NotificationServices
Version: 2.0.9999.9
Message: The file has not been added to the internal file cache.
   
Explanation
This error occurs when the File delivery protocol attempts to write notifications to a file that has not been loaded into its internal file cache.

If you get this error it indicates an unexpected situation in the Notification Services implementation of the File delivery protocol.

   
User Action
Inform Microsoft of this error. Be as specific as possible about your scenario and how the error came about.

Related:

The notification could not be written to the file.

Details
Product: SQL Server Notification Services
Event ID: 7402
Source: NotificationServices
Version: 2.0.9999.9
Message: The notification could not be written to the file.
   
Explanation
This error occurs when the File delivery protocol is unable to write a notification to a file.There are several possible reasons for this error:

Disk space might be low, leaving insufficient space to write to the file.

Available memory might be low, leaving insufficient memory for the stream object used by the File delivery protocol to write the notifications.

   
User Action
Check the amount of free disk space on the drive where the notifications file resides. If that drive is out of space, either clear some space or change the <deliverychannel> definition in the configuration file to have the application write to another drive, and then stop the service, run NSControl Update, and restart the service.

If there is enough disk space, check the memory usage of your system. If available memory is very low, consider shutting down other applications.</deliverychannel>

Related:

The file could not be opened.

Details
Product: SQL Server Notification Services
Event ID: 7401
Source: NotificationServices
Version: 2.0.9999.9
Message: The file could not be opened.
   
Explanation
This error occurs when you use the File delivery protocol, but the notifications file cannot be opened. One typical cause is that a faulty path was specified in the configuration file. For example, the following configuration file receives error 7401 if the computer has no drive called Q.

<deliverychannels><deliverychannel><deliverychannelname>FileChannel</deliverychannelname><protocolname>File</protocolname><arguments><argument><name>FileName</name><value>Q:\FileNotifications.txt</value></argument></arguments></deliverychannel></deliverychannels>

Another typical cause is that the path is valid, but another process already has a handle on the notifications file. To determine whether another process has a handle on the notifications file, use the handle.exe tool, available from www.sysinternals.com. If you determine that another process does have a handle on the notifications file, you may need to stop that process.

The event log entry contains details on the cause of the error.

   
User Action
Check the event log entry to determine the specific reason that the notification file cannot be opened. For example, in the example above, the following information appears in the error log entry:

Could not find a part of the path “Q:\FileNotifications.txt”.

If the path is faulty, fix the path in the configuration file. You must then stop the service, run NSControl Update, and then restart the service. If another process has an open handle on the notifications file, get that process to release the handle. File handles are generally released by a process when that process is stopped. In some cases, depending on the application, there may be a less intrusive way to get the other process to release the file handle.

Related:

The body format must have the value ‘text’ or ‘html’.

Details
Product: SQL Server Notification Services
Event ID: 7304
Source: NotificationServices
Version: 2.0.9999.9
Message: The body format must have the value ‘text’ or ‘html’.
   
Explanation
This error occurs when the SMTP delivery protocol is in use but the BodyFormat field has been given a faulty value in the ADF.

In the /NotificationClasses/NotificationClass/Protocols section of the ADF, each notification class is configured to use one or more delivery protocols. Each delivery protocol uses its own set of fields when delivering a notification. If you use the SMTP delivery protocol, you can optionally specify the BodyFormat field, which tells the SMTP delivery protocol whether the e-mail message body is plain text or HTML. If you do not explicitly specify a value for BodyFormat, the value ‘text’ is used by default. If you do specify a value, it must be either ‘text’ or ‘html’. It looks similar to the following if you want a fixed value across all e-mail messages:

<field><fieldname>BodyFormat</fieldname><sqlexpression>’Html'</sqlexpression></field>

Or, if you want to vary the BodyFormat value from one message to the next, you can do something similar to this:

<field><fieldname>BodyFormat</fieldname><sqlexpression>NotificationBodyFormat</sqlexpression></field>

In this case you need to have a field in your <notificationclass> element called NotificationBodyFormat, and this field must have a valid format for each notification.</notificationclass>

   
User Action
First identify the faulty BodyFormat field in the ADF and fix it. Then stop the service, run NSControl Update, and start the service again.

Related:

The priority must have the value ‘low’, ‘normal’ or ‘high’.

Details
Product: SQL Server Notification Services
Event ID: 7303
Source: NotificationServices
Version: 2.0.9999.9
Message: The priority must have the value ‘low’, ‘normal’ or ‘high’.
   
Explanation
This error occurs when you use the SMTP delivery protocol but specify an invalid value for the priority of an e-mail message.

In the <protocol> element of the ADF you associate a delivery protocol with a notification class. You specify fields such as Priority, Subject, From, and To to use when sending a notification. These fields may have fixed values, or expressions that determine where to get the actual value at runtime (usually from the notifications table).

The Priority field has only three allowed values: ‘low’, ‘normal’, and ‘high’. This error occurs when the Priority value is not one of these values.</protocol>

   
User Action
Look in your ADF for all places where you specify use of the SMTP protocol. In each case, examine the value you specified for the Priority field. If you prefer to use a fixed value for all e-mail messages, your code should look similar to this:

<field><fieldname>Priority</fieldname><sqlexpression>’normal'</sqlexpression></field>

However, if the priority varies from one e-mail message to another, you may need to define a dynamic value such as the following:

<field><fieldname>Priority</fieldname><sqlexpression>NotificationPriorityField</sqlexpression></field>

In this case, your notification class must have a field in its schema called NotificationPriorityField, and that field must have a proper value for each notification.

Related:

The notification could not be formatted by the delivery protocol.

Details
Product: SQL Server Notification Services
Event ID: 7242
Source: NotificationServices
Version: 2.0.9999.9
Message: The notification could not be formatted by the delivery protocol.
   
Explanation
This error occurs whenever the custom Http extension protocol implementation throws an exception while preparing the message to be posted. It is thrown by the FormatEnvelope method in the custom protocol.

The event log entry contains the name of the Http protocol.

   
User Action
Debug your custom protocol implementation, looking for errors such as the name of a field specified incorrectly. Add enough information in the exception that you throw from within your custom protocol to help you determine the cause of the problem.

As a last resort, you can attach a debugger to the NSService.exe process and place breakpoints in your custom protocol code.

If you did not write the custom protocol, contact the developer of the custom protocol.

Related:

The protocol provider could not be loaded because the assembly or class name is not valid.

Details
Product: SQL Server Notification Services
Event ID: 7241
Source: NotificationServices
Version: 2.0.9999.9
Message: The protocol provider could not be loaded because the assembly or class name is not valid.
   
Explanation
This error occurs when you have a custom Http extension. In the delivery channel section of the instance configuration file, you specify the name of the file containing the implementation of the custom protocol and the class that implements the protocol. If either of these is incorrect, this error is logged.

The event log entry contains the inner exception, which indicates which component was not found, the file containing the protocol or the class.

   
User Action
If the file was not found, ensure that the ProtocolProviderAssemblyName value points to the correct file. If the class was not found, ensure that the name of the class specified in ProtocolProviderClassName has the correct case, and that it has the correct fully qualified class name in the following form:

<namespace>.<classname></classname></namespace>

Related: