Merge replication doesn't work with custom conflict resolution

I am evaluating merge replication, "push" subscription to SQL Server 2014. If the default resolver is used (I refer to @article_resolver sp_addmergearticle parameter) everything seems to work as expected. However, if I use "Microsoft SQL Server Subscriber always wins conflicting resolver" (or any other MS standard resolver for that matter), if the Subscriber is on a different machine, the Merge Agent always gives the following error: "Process cannot initialize. Please check that the component is registered correctly. " This does not happen if the Subscriber is on the same computer as the Publisher and Distributor.

The problem seems to have existed in SQL Server 2008 according to some reports, but it has apparently been fixed since then. I've tried the following:

  • @partition_options = 0 as suggested somewhere.

  • Copied ssrpub.dll (dll resolver) to the subscriber machine (doesn't matter, since this is a "push" subscription?)

  • Register ssrpub.dll with regsvr32 on the Publisher / Distributor machine.

I also run sp_enumcustomresolvers on the Publisher machine and it happily showed all the standard resolver, including "Microsoft SQL Server Subscriber Always Wins Conflict Resolution".

Another thought: I am using SQL Server Express as a Subscriber (on a remote machine). Maybe it doesn't support custom solutions? (I am using full SQL Server in "local subscriber" option, which works fine as I mentioned earlier).

Note also that if I create a new post via SSMS, the Resolver tab of the Article Properties dialog is empty, meaning it does not display any resolvers. The same tab contains a complete list of resolvers, though if open to an existing publication.

+3


source to share


1 answer


Yes, it turns out that SQL Server Express does NOT support custom COM conflict resolution; this is actually confirmed here: https://support.microsoft.com/en-us/kb/2664701 . There are also custom Stored Procedure Conflict Resolutions, but they require a special "Microsoft SQLServer Stored Procedure Processor" which is a COM recognizer and as such is not supported in SQL Server Express.



+1


source







All Articles