From: Marcel de on
I'm having the same problem.
I have now changed the folling thing.
When you create a publicication in RMO, you can set the schedule for a snapshot.

publication.SnapshotSchedule.FrequencyType = ScheduleFrequencyType.Continuously;

I've set the frequencytype to Continuously. This way the snapshot is taken when sqlserver starts.
In our case this was a solution because we don't have a really large database, so maybe it also working for you.

Good luck!



JDS wrote:

Thanks for the reply. Maybe I am looking at the wrong thing then.
05-Feb-08

Thanks for the reply. Maybe I am looking at the wrong thing then.

As it was, when the client with an expired subscription tried to
synchronise (using RMO from my app) it got the message "Snapshot for
the publication has become obsolete" and the synchronisation attempt
stopped. This is obviously no good for the user of the client machine.
I need the synchronisation to automatically use the latest available
snapshot. (When I manually recreated a snapshot the synchronisation
worked fine).

However, rather than looking at the subscription/publication settings
maybe I need to be looking at the agent to make sure it is
automatically regenerating a snapshot. Any suggestions greatly
appreciated but I will see if I can fix it.

Previous Posts In This Thread:

On Tuesday, February 05, 2008 12:28 AM
JDS wrote:

How to auto generate a snapshot for an existing subscriber
Is it possible to set a merge publication to automatically generate a
snapshot for an existing subscriber if the subscription has expired
and the snapshot has become obsolete?

I have the retention period set to 14 days but it is highly likely
that a user may exceed this time, say if they are on vacation and
return to work. At the moment I am getting the error on the client
that the snapshot for the publication has become obsolete. I can
regenerate the snapshot on the server and then the client will
synchronise but this does not seem to be a satisfactory solution.

In Management Studio there is an option "Automatically define a
partition and generate a snapshot if needed when a new subscriber
tries to synchronise" but this just seems to refer to new subscribers
only. I presume in T-SQL the argument
"@allow_subscriber_initiated_snapshot" in sp_addmergepublication is
the same but the definition is not as precise and does not refer to
just new subscribers. In any case it is set to true and does not seem
to work for existing subscribers.

This may have been caused by the fact that I set the subscription for
reinitialisation at one point but I would still want to have this
possibility and the control at the client.

Am I missing a basic principle of replication here? To me it would
seem to be an important feature for the client to be able to
automatically trigger the regeneration of a new snapshot if necessary
without having to rely on intervention on the server.

Any help greatly appreciated.

On Tuesday, February 05, 2008 12:28 AM
Hilary Cotter wrote:

If a subscriber's retention period has expired and they have notsync'd within
If a subscriber's retention period has expired and they have not
sync'd within the retention period, they will use the latest generated
snapshot. By default a merge snapshot is generated every 14 days which
is the default retention period.

The @allow_subscriber_initiated_snapshot option is only for dynamic
snapshots for filtered publications.

So you are missing nothing, its just the merge replication is
designed to create a single snapshot which all new subscribers will
use until there is a reinitialization or until they have not sync'd
within the retention period. In both of these later two cases they
will use the new snapshot.

New subscribers will use the snapshot that is generated and waiting
for them.

HTH

On Jan 31, 4:26=A0pm, JDS <ad...(a)jeremysage.com> wrote:

On Tuesday, February 05, 2008 12:28 AM
JDS wrote:

Thanks for the reply. Maybe I am looking at the wrong thing then.
Thanks for the reply. Maybe I am looking at the wrong thing then.

As it was, when the client with an expired subscription tried to
synchronise (using RMO from my app) it got the message "Snapshot for
the publication has become obsolete" and the synchronisation attempt
stopped. This is obviously no good for the user of the client machine.
I need the synchronisation to automatically use the latest available
snapshot. (When I manually recreated a snapshot the synchronisation
worked fine).

However, rather than looking at the subscription/publication settings
maybe I need to be looking at the agent to make sure it is
automatically regenerating a snapshot. Any suggestions greatly
appreciated but I will see if I can fix it.

On Tuesday, February 05, 2008 12:28 AM
Hilary Cotter wrote:

This is a hard one to diagnose.
This is a hard one to diagnose. Can you try to bump up the permissions
of the publisherlogin, distributorlogin and make sure that the
publisherlogin is in the dbo_role on the publisher and in the PAL.

It also needs rights to read the snapshot share, and needs permission
to read and list the files and folders on the directory underlying the
snapshot share and all subdirectories of it.

On Feb 2, 5:47=A0am, JDS <ad...(a)jeremysage.com> wrote:

On Monday, February 18, 2008 11:57 PM
srikant wrote:

Make sure the master snapshot agent job is scheduled to run every 14 days and
Make sure the master snapshot agent job is scheduled to run every 14 days and
for expired subscriptions, you need to re-initialize the subscriptions. for
this you need to right click on the subscription name.


Submitted via EggHeadCafe - Software Developer Portal of Choice
Free Online Courses Available for Eggheadcafe.com Users
http://www.eggheadcafe.com/tutorials/aspnet/5261083e-6e03-4b25-8728-fc3cf6855293/free-online-courses-avail.aspx