Yes, the distributor can use a separate instance of the delivery protocol
for each work item it processes in parallel. However, it doesn't make any
guarantees about how many delivery protocol instances it will use at any
time, or whether a particular delivery protocol instance will be re-used
after it has been used to process one work item. The contract between the
distributor and the delivery protocol objects is:
- Initialize() will be called at the start of processing of a work item and
will not be called again until a Flush() and Close() sequence of calls has
been made.
- DeliverNotification() will be called zero or more times, depending on the
number of notificaiton in the work item.
- Flush() will be called at least once.
- Close() will be called at the end of work item processing. After calling
Close(), no other methods will be called on the delivery protocol instance
unless Initialize() is called again.
Basically, to guarantee your protocol will work in all cases, you should not
make any assumptions about the number of instances. You should always do
complete initialization in Initialize() and complete shutdown in Close().
Hope this helps.
-shyam
--
Learn more about SQL-NS:
http://www.amazon.com/exec/obidos/tg/detail/-/0672326647/ ---------------------------------------------
This posting is provided "AS IS" with no warranties, and confers no rights.
Use of included script samples are subject to the terms specified at
http://www.microsoft.com/info/cpyright.htm. ---------------------------------------------
[quoted text, click to view] "R" <alpha.beta@gamma.com> wrote in message
news:16fc01c5106c$81da58d0$a401280a@phx.gbl...
> In cases where you've set the NotificationBatchSize to a
> smaller number in order to get more parallel processing
> (specifically, to get a greater number of work items
> targeting a specific delivery channel), does the
> distributor instantiate more than one delivery protocol
> object that targets that common channel?