.NET Tutorials, Forums, Interview Questions And Answers
Welcome :Guest
Sign In
Win Surprise Gifts!!!

Top 5 Contributors of the Month
Gaurav Pal
Post New Web Links

Merge Replication: Fails using Replication.SaveProperties when changing Subscription Info

Posted By:      Posted Date: August 28, 2010    Points: 0   Category :Sql Server
I'm trying to use SQL Server/Compact Framework 3 Merge Replication functionality and am running into a problem when calling Replication.SaveProperties (using c#). I was hoping to get some clarification on whether its my interpretation on how things should work vs a coding problem. Basically, the Merge Replication seems to work as I can sync information between my handheld and server databases.  However, I've created a form on my handheld so that the user can change some synchronication settings (e.g. Publication or Publisher Name) and then save it.  What I've noticed is : 1) You can NOT call Replication.SaveProperties until after a synchronization is performed (otherwise you get an error message).  Assuming this is so that it can create the "__sysMergeSubscriptions" table. Does this sound right? 2) If I then try to change the saved Subscriber information via another call to Replication.SaveProperties (e.g. change the Publication info), I then get an error message that says: The subscription was not found. Publisher, PublisherDatabase, or Publication  could be incorrect. Is this normal behavior?  Does this mean that you can you NOT change subscriber information; only add or drop it? Thanks,  Ed

View Complete Post

More Related Resource Links

Merge Replication, Push Subscription : The snapshot takes centuries to apply

Well, not centuries, except that the users are storming the gate. I'm trying to find how to get the snapshot moved to the subscriber and applied in a reasonable time. Last time was successful, but took 2 1/2 days to build the subscriber database from the snapshot. Hillary responded: Something is very wrong here. You should be able to generate your snapshot, copy it manually over to the subscriber - using the altsnapshotfolder parameter and then apply it there. So now I have my snapshot, a folder with lots of .cft .bcp .dri .prc .sch  and .trg files. Getting this to the subscriber computer shouldn't take long. Once I get it there, how do I use it to get the subscriber set up?  You can't be successful at this unless you're at least 1/2 a bubble off level.

Mysterious Subscription - Merge Replication


Hi. I have SQL Server 2005 Standrad Editions publisher and 3 subscribers.

I had a publication with 3 subscriptions. For some reason i had to delete one of the subscription.

At the time of deletion for the first time on the publication server, it didnot return any errors.

Then when i tried to recreate it at the publisher, it gave me message that it already exists.

Now when i try to delete it at the publisher (both by seleting the check box to connect to subscriber n deleting or unchecking the check box), it fails saying there is no such subscriber.

I can go to the subscriber server, under replications and subscritpuions, i can delete it. But after few minutes or so, it shows up again automatically.

In replication monitor i donot see that particular subscription under the publication

In the Distribution database, i donot see the entry of the subscriber in MSmerge_subscriptions table

But in the database on which replication is taking place, i do see the jargon entries of the subscriber in the System table sysmergepublications.

When i delete those entries with delete statements, they show up again in the table after a few minutes.


I ran SQL server profiler to try and understand whats happening. My suspect is its something to do with the execution of the

SQL 2005 Merge Replication : sysmergepublications unique index 'nc1sysmergepublications' fails

I've got one SQL 2005 SP2 server setup as Publisher and distributor which replicates through Merge pull subscriptions on SQL 2000 SP4 machines. Some of these SQL 2000 machines does republishing too. However, after a columndrop on one of the articles at the SQL 2005 machine by using sp_repldropcolumn the whole subscription sync came down on me with failures all over. All had the same error :

"Cannot insert duplicate key row in object 'dbo.sysmergepublications' with unique index 'nc1sysmergepublications'"
This procedure was called by sp_MScreateglobalreplica.

I have found that there are invalid publications in sysmergepublications, but only on publishers for the SQL 2000 subscription machines(excluding valid republishing publications). Deleting these pubID's does not help at all. With the first sync of any pull subscription (after the delete) they re-appear on the SQL 2005 machine.

However, I need to get the pull subscriptions going again. How can I clean the system tables to prevent any errors like above or duplicate keys in the sysmergesubscription table... Please do not recommend an overhaul. I need step by step procedures to get it going.

Changing column Data Type when using merge replication: RFC on my SMO code.


I maintain an application for that uses SQL 2005 / 2008 for data persistence.
Some clients use Merge Replication (pull or push) to replicate data.

Some of the data the application stores should be "versioned". All versions of a row containing medical information should be stored, somewhere in a database. This means all updates and deletes to those rows should result in in 2 affected rows:

  • a copy of the row before the change
  • a row containing the change (or the deletion of the row in question)

I plan to achieve this using triggers on all the tables for wich "versioning" is required.
The old versions of a row may be stored in the same database, an other database (or a database on a linked server).

Unfortunalty, the AFTER UPDATE, DELETE triggers do not support TEXT, NTEXt an IMAGE data type columns.
Thus I am required to convert all text, ntext and image columns to their respective "new" data types, varchar(max), nvarchar(max) and varbinary(max).

This is not a big issue when the database is not published, but when it is... most articles (and posts) i've read suggest:

  1. Add a column of the target data type to the table, copy data from source column. rename columns and drop the source column.

  2. Create a temp table (with the s

Initial SQL Server replication over https fails with "subscription to publication 'xxx' has expire


Set up

SQL Server 2008 standard 64-bit on machine A, acting as both publisher and distributor (Windows 7 Professional 64-bit)

IIS 7 on machine B in same domain as machine A (Windows Server 2008 R2 Standard 64-bit).

Subscriber running on Sql 2008 Express on notebook running Windows 7 home, does not belong to any domain

If I hook up the notebook to the internal network, and use the SSMS "New Subscription Wizard", everything works correctly (I connect to the publisher using an SQL account)

If I then delete the subscribtion on the notebook, and recreate it on the notebook outside the firewall (using the script generated by the wizard in the step above), and initialize the replication from outside the firewall it STILL works correctly.

However ...

If I create a new publication on the publisher, and try to initialize the replication on the subscriber outside the firewall (using the same script from the wizard), I get the error noted in the title.

Again, I am using a script to create the subscription which was generated by the new Subscription Wizard, and I am running the same batch file on the subscriber to run replmerg.exe to initiate / replicate in both scenarios.

So, as far as I can see, everything is identical, including all the security accounts used.

It seems that somehow

merge replication Uninitialized subscription warning


I've followed the instructions to setup merge replication. Finally, when I viewed the "Launch Replication Monitor", it is showing the warning as "Uninitialized subscription" Doesn anyone know the cause of this warning? Also, the table is not getting update,,,,,


Merge Replication - Subscription Error


Hi All,


I get this error when I try to run the sync on a subscription. I found that this actually has something to do with permissions.

“ String or binary data would be truncated. [SQLSTATE 22001] (Error 8152). The step failed

If the account I am using is a server sysadmin does it still have to be part of the db_owner in publication and distribution dbs as shown below? It has write access to the file share as well so I am not sure I understand what the problem is? It is also a sysadmin on the client where the subscription is going?




Programmatically changing a merge replication agent job


Is there a supported way to change a merge replication agent job programmatically?  I know how I can do it in SSMS, but I would like to be able to script it.  I basically want to do the following:

  1. Change a replication job from uni-directional merge replication to bi-directional merge replication by removing "-EXCHANGETYPE 1" from the agent command
  2. Reinitialize the subscription tied to the replication job
  3. Wait some period of time for the merge replication job to start running again
  4. Change the replication job back from bi-direction merge replication to uni-directional merge replication by adding "-EXCHANGETYPE 1" from the agent command



merge replication system tables fragmentation issue

I have Merge replication going on in my environment. The problem is that system tables like MSmerge_content, MS merge _tombstone and MSmerge_genhistory are getting fragmented. We are rebuilding indexes time to time daily. But we want some good fix. Just send some good idea guys?

Steps by Step document for configuration Merge Replication in 2005

Hi , Can anyone provide link to configure Merge Replication in 2005 with print screen.Also let me know the difference between Transcation level and Merge Replication. regards Vijay  

SQL Server 2005 Merge Replication

We did the following: We setup a database with all of standard tables, views, etc. We then put in place merge replication for a few of the tables within this database, including a tables called "Areas". We can execute SQL statements to insert rows into this table fine. We then applied an update script for this database to change a few tables by adding fields and changing indexes, etc.  We didn't change the "Areas" table though. After the update to the database structure, we get an error when trying to insert into this "Areas" table. The error message was the following: The insert failed. It conflicted with an identity range check constraint in database 'AETest', replicated table 'dbo.Areas', column 'AREPrimaryId'. If the identity column is automatically managed by replication, update the range as follows: for the Publisher, execute sp_adjustpublisheridentityrange; for the Subscriber, run the Distribution Agent or the Merge Agent.  The statement has been terminated.   What would cause such a problem and how do we resolve it?  The structure of the "Areas" table before and after the update is the following: USE   [AETest] GO /****** Object: Table [dbo].[Areas] Script Date: 08/24/2010 17:42:36 ******/ SET   ANSI_NULLS ON GO SET   QUOTED_IDENTIFIER ON GO SET   ANSI_PADDING ON

Merge Replication: How to give read access on snapshot share to a sql account

Hello All, I want to give read access to an sql account(not windows account). Can it be given or not. Someone please tell. Thanks saandii777

fragmentation in merge replication

I have Merge replication going on in my environment. The problem is that system tables like MSmerge_content, MS merge _tombstone and MSmerge_genhistory are getting fragmented. We are rebuilding indexes time to time daily. But we want some good fix. Just send some good idea guys?

configuring merge replication

Hi ALL,              I am configuring merge replication... For example Publisher A sql server 2008 ( databse adventureworks) subscriber B sql server 2000 ( database adventureworks) I already have database created at subscriber....both databases at publisher and subscriber are identical in structure but changes in data( at subscriber there some inserts and updates) now before i create new snapshot and applied to subscriber i want to upload changes which are at subscriber... how can i apply changes to publisher database before i run merge agent... TIA

error in merge replication

Hi ALL,      I have merge replication configured between republishers( sql 2008) and subscribers( sql 2000)...i am getting the following error while trying to sync   The merge process could not update the list of subscriptions. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147201010) Get help: http://help/MSSQL_REPL-2147201010 Cannot insert duplicate key row in object 'dbo.sysmergesubscriptions' with unique index 'uc1sysmergesubscriptions'. (Source: MSSQLServer, Error number: 2601) Get help: http://help/2601 The subscription could not be created. (Source: MSSQLServer, Error number: 14057)   Any suggestions y i am getting this error TIA

2 way (bidirectional) MERGE replication?

Is this possible? I have SQL Server 3.5 CE on a windows mobile device which is going to do the majority of collection of information. I have SQL Server 2008 (needs to work with 2005 too) on a server and have no problem getting data from the server to the mobile device via replication but I need to know if it's possible and if so how, to get the merge to work the other way at the same time... or even via another means if it must do. Thanks for any help. Steve   It might also be helpful to add here that the server is configured for web synchronisation.

Cannot run Merge Replication via a schedulded Job.

Hi, I successfully implement a Merge Replication with Web Synchronization (SSL), my two servers are Windows Server 2008 R2 x64 with SQL Server 2008 R2. I configure the subscriber with RMO (http://msdn.microsoft.com/en-us/library/ms345207.aspx), and when I run the sql Job with the merge agent logged in, it works, however when the job is scheduled and the merge agent is not logged in, the sql job failed, with proxy server... I configure IE for the Merge agent not to use proxy, but it's like the job is not loading the user profile but use instead a default one. From what I read, it comes down to that. The sql job run under a proxy account (the merge agent). Further Steps: When I run the sql job under the sql server agent credentials, it works. Thx for any help. Sami Marzouki
ASP.NetWindows Application  .NET Framework  C#  VB.Net  ADO.Net  
Sql Server  SharePoint  Silverlight  Others  All   

Hall of Fame    Twitter   Terms of Service    Privacy Policy    Contact Us    Archives   Tell A Friend