Specifying the Notification Batch Size

When you define a notification class, you can specify a notification batch size value. Specifying a notification batch size can produce more notification batches per rule firing. By creating more notification batches, and hence more work items, distributor threads can process the work items in parallel.

Specifying a notification batch size is optional, and has different effects depending on whether you use digest delivery.

Batch Sizes Without Digest Delivery

If the notification class is not using digest delivery, the notification batch size configures the maximum number of notifications in each notification batch. If a rule firing produces more notifications than the specified maximum batch size, Notification Services creates multiple notification batches.

Before formatting and delivery, Notification Services divides each notification batch into work items, creating one work item per delivery channel. Any distributor with available resources can process a work item, and various work items can be processed in parallel.

If your application has multiple distributors or your distributors use multiple threads, having more work items can make better use of distribution resources. By creating more work items, distributor threads can process the work items in parallel.

For example, if a subscription rule normally creates about 5000 notifications for two delivery channels, Notification Services would, by default, create two work items per rule firing. This would provide only two units of work, and a distributor thread would process all notifications within each work item serially. However, if you limit the notification batch size to 1000 notifications, Notification Services creates five batches for the same 5000 notifications. For two delivery channels, this produces 10 work items per rule firing. The additional work items allow your application to take advantage of multiple and multithreaded distributors.

If you do not specify a notification batch size, or specify a notification batch size value of 0, Notification Services produces one notification batch from each rule firing that produces notifications.

If you are using multicast delivery, only notifications within a single batch are considered for multicast delivery. Smaller batch sizes may mean less optimization from multicast delivery.

Batch Sizes with Digest Delivery

If the notification class you are defining uses digest delivery, the notification batch size setting configures the number of notification batches produced per rule firing, rather than the number of notifications in each batch.

For each rule firing, the generator creates the specified number of notification batches. The generator then adds notifications to the batches in a round-robin fashion. Notifications destined for the same subscriber are kept together in the same batch so that digest delivery can combine notifications into a digest message.

Note

This batch size for digest delivery is approximate. If the number of notifications generated is small, Notification Services creates fewer batches.

The default notification batch size value is 0, which for digest delivery means 1 notification batch per rule firing.

Specifying the Notification Batch Size

If you are defining an application using XML, define the notification batch size in the application definition file (ADF). If you are defining an application programmatically, use Notification Services Management Objects (NMO) to define the notification batch size.

To specify the notification batch size

See Also

Concepts

Defining the Notification Schema
Configuring Content Formatters
Specifying Digest or Multicast Delivery
Specifying the Notification Expiration Age
Subscription Processing Architecture
Notification Formatting and Delivery Architecture

Other Resources

Defining Notification Classes
Defining Notification Services Applications
Defining Notification Classes
Configuring Delivery Protocols

Help and Information

Getting SQL Server 2005 Assistance