Pause/Continue distribution, content formatting or delivering.

0 views
Skip to first unread message

Roman Yurkin

unread,
Jul 8, 2005, 8:30:07 AM7/8/05
to
Notification Services get an event and create the notification batch.
Can I pausing or stopping process of notification delivery with (or
without ) ability to continue?

kate

unread,
Jul 8, 2005, 4:40:31 PM7/8/05
to
if i understand your question correctly, you want to create the
notification batches and then wait until some later time to distribute
them.

Notification batches are prepared by the generator component ready for
protocol specific processing by the distributor component.

The distributor wake-up interval is completely seperate from the
generator which creates the notification batches, so you can set them
separately and the notifications will be prepared and wait until the
distributor wakes up. Equally you can completely disable the
distributor separately and nothing will sent out until you enable it
again. Shyam, has posted about controlling the expiration of
notifications so that you can define if any should be discarded as too
old.

hope that helps

Kate MBCS

Alert Technologies
http://www.alert-technologies.co.uk
Get your notification services implementation going in minutes not
weeks ......

Joe Webb

unread,
Jul 8, 2005, 5:01:57 PM7/8/05
to
Hi Roman -

To disable the distributor while allowing everything else to remain
enabled, run the following command from the NS command prompt
(assuming v2.0):

nscontrol disable -name <InstanceName> -distributor

To re-enable it:

nscontrol enable -name <InstanceName> -distributor


HTH...

Joe

--
Joe Webb
SQL Server MVP


~~~
Get up to speed quickly with SQLNS
http://www.amazon.com/exec/obidos/tg/detail/-/0972688811

I support PASS, the Professional Association for SQL Server.
(www.sqlpass.org)

Yurkin@discussions.microsoft.com Roman Yurkin

unread,
Jul 11, 2005, 4:13:02 AM7/11/05
to
Thanks.

I want to specify the question. I have one NS instance and one application
in this instance. This application contains one event class with one
parameter (Site_ID). Application gets some events with different Site_ID
(e.g. 1,2,3) and creates several notification batches for each event. I want
to pause or stop delivery process for notifications (may be, distributor work
items?) for some Site_ID (e.g. 2). Can I do this?

kate

unread,
Jul 11, 2005, 8:37:18 AM7/11/05
to
you could change your generator rule to exclude certain Site_ID
values...

is this a one-off exercise or do you need to do this many times with
different Site_ID values each time ?

Joe Webb

unread,
Jul 11, 2005, 12:41:34 PM7/11/05
to

Joe Webb

unread,
Jul 11, 2005, 12:53:59 PM7/11/05
to
Hi Roman -

A couple of possibilities come to mind:

1) Depending on your Event Provider, you could alter the how the
events are recognized to prevent the submission of the unwanted
events. For example, if you're using the SQL Server Event Provider,
you can base it on a view that unions together all of the events you
want to recognize. When you need to stop on type of event for a while,
just comment it out of the view. For example:

SELECT Site_ID, Site_Info FROM MyTable WHERE Site_ID = 1
UNION
SELECT Site_ID, Site_Info FROM MyTable WHERE Site_ID = 2
UNION
SELECT Site_ID, Site_Info FROM MyTable WHERE Site_ID = 3
UNION
SELECT Site_ID, Site_Info FROM MyTable WHERE Site_ID = 4


2) You can reactively catch the unwanted notifications in a custom
content formatter and disregard it based upon some criteria that you
set.

Of course I think proactively catching them ahead of time (option #1)
is better. It's more efficient and allows you to resubmit them later
if need be.

HTH...


--
Joe Webb
SQL Server MVP


~~~
Get up to speed quickly with SQLNS
http://www.amazon.com/exec/obidos/tg/detail/-/0972688811

I support PASS, the Professional Association for SQL Server.
(www.sqlpass.org)

On Mon, 11 Jul 2005 01:13:02 -0700, Roman Yurkin <Roman
Yur...@discussions.microsoft.com> wrote:

sidgam

unread,
Jul 12, 2005, 1:59:35 AM7/12/05
to
I think the question being asked is that while a batch is being
distributed by the distributor, is there a defined process for
stopping the distribution for that specific batch only and then re
starting it at a later time.

Stopping the distributor using nscontrol update will completely shut
it down and pause/abort all batches.

Is there a way to pause/abort distribution at a batch level?

Is stamping a DistributorWorkItem for a batch with a complete
date/time equivalent to pausing/aborting the delivery?

Thanks

kate

unread,
Jul 12, 2005, 6:52:42 AM7/12/05
to
others may have more detail on this. but looking at the procs, the
createdistributorworkitem only occurs for generated work items in the
<instance>batches1 table with a notificationbatchesstatuscode of 3. you
could override this to zero which would effectively put the batch on
hold until you set it back to 3.

The dangers of this are , you have to have a window of time to change
the status codes before the distributor runs. this is difficult to
guaruntee.

If NS changes the way it works this will fail.

personally i think intervening at table level is too dodgy.

what would be better would be a look at a way of getting either a
custom content formatter or delivery protocol to implement this. to
stop the batch would be relatively straightforward. the problem would
be re-instating it as it could get expired or vacuumed before you
decide to let it thru.

Joe Webb

unread,
Jul 12, 2005, 8:16:57 AM7/12/05
to
I don't think that's supported.

--
Joe Webb
SQL Server MVP


~~~
Get up to speed quickly with SQLNS
http://www.amazon.com/exec/obidos/tg/detail/-/0972688811

I support PASS, the Professional Association for SQL Server.
(www.sqlpass.org)

kate

unread,
Jul 13, 2005, 2:21:10 AM7/13/05
to
Some other thoughts from our own experience. Assuming you have multiple
subscriptions for each Site_ID. If you want to stop the notifications
for a given Site_ID temporarily because for example the recipients have
requested it you could use the approach we do in our own product.

ResponseTime extends Notification Services to offer dynamic
personalised notifications which can be selectively switched on and off
at any time without rebuilding the system. It includes additional
downstream user-driven rules, based on the event payload, so that
notifications can be adjusted on the fly to filter for for particular
data values, again without rebuilding the system.

So if you wanted to stop notifications for site=2 only, you could apply
that with a single click and then reinstate them later.

If your objective is to suspend the notifications until some later time
then you could use the chronicles table to record all the events
(providing that it is not swept by the vacuumer) but there is no real
provision for suspending batches in NS as it purges itself regularly
for performance reasons.

If you really need to suspend selected messages, then best to send all
the notifications to an xml file drop with a custom protocol (supported
as standard in ResponseTime) and then use your own code to decide which
messages to forward immediately and which to deal with later. If all
the messages are for one group of internal business users, rather than
sending them as seperate messages, pull the file drop results into an
intranet page for them to browse at their leasure

Reply all
Reply to author
Forward
0 new messages