Merge Replication Does Not Work With Non-default Conflict Resolver

Aug 4, 2015

I have been evaluating merge replication, 'push' subscription on SQL Server 2014. If the default resolver is used (I refer to @article_resolver parameter of sp_addmergearticle), all seems to work as expected. However if I use "Microsoft SQL Server Subscriber Always Wins Conflict Resolver" (or any other MS standard resolver for that matter), if the Subscriber is on a different machine, the merge agent invariably gives the following error: "The process could not initialize <resolver_name>. Verify that the component is registered correctly."

This does not happen if the Subscriber is on the same machine as the Publisher and Distributor.

The problem seemed to exist in SQL Server 2008 according to some posts but it has been apparently fixed since then. I've tried the following:

- @partition_options = 0, as was suggested somewhere.

- Copied ssrpub.dll (the resolver dll) to the Subscriber machine (should not really matter as this is 'push' subscription?)

- Registered ssrpub.dll with regsvr32 on the Publisher/Distributor machine.

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

Another thought is, I'm using SQL Server Express as the Subscriber (on the remote machine). Perhaps it does not support custom resolvers? (I'm using the full SQL Server in the 'local subscriber' variant, which does work OK as I mentioned before).

Note also that if I create a new publication via SSMS, the Resolver tab of the Article Properties dialog is empty, i.e. it does not list any resolver. The same tab contains the full list of resolvers though, if opened for an existing publication.

View 2 Replies


ADVERTISEMENT

Default Conflict Resolver In Sql 2000

Sep 20, 2005

Hi, I'm replicating a database between two instances of Sql 2000 using Merge Replication. I have no custom resolvers at present but I'm seeing something unexpected.

View 5 Replies View Related

False Merge Conflicts - Impact On Conflict Resolver

Oct 12, 2007

I am using SQL 2005 build 9.0.2227

I have a custom conflict resolver - which fires on update conflicts (using row level tracking)

I have had a couple of occasions when the resolver has failed with the following error:

"The schema of the custom Dataset object implemented in the business logic handler does not match the schema of the source Dataset object. Verify that the custom Dataset object has been correctly defined"

In both cases I found that the row for which a conflict was being handled was not a conflict at all. One was a straightforward non conflicting update at the publisher and the other was a similar update at the subscriber.

I got round the problem by temporarily using a fix version of the conflict resolver dll that either set the custom Dataset to the publisher dataset or the subscriber dataset - depending on where the update had occurred.

When the first error (publisher update) occurred - the resolver code was basing the custom dataset on the publisher dataset - which was presumably empty - so I changed the code to base the custom dataset on the subscriber dataset. The second error therefore occurred when the custom dataset was based on the subscriber dataset - which again was presumably empty

Note that the tables involved in each occasion were different and neither table is filtered.

Is there a known bug in this area?

I am considering trying to change the resolver code to identify false conflicts in order to workround the problem - but this would be difficult to test as I can't reproduce the problem

aero1

View 2 Replies View Related

Replication Conflict Resolver

Jan 18, 2007

Hi Everyone!
Here another post on replication.

When conflict occur, I want the user to be able to select witch row to keep and witch to delete.

I've look for system stored procedure, that could help me do the resolution but I've founded nothing.

So I've thought that I could do it by hand, with UPDATE/DELETE query
Take the row in the %TABLE_NAME%_Conflict table and copy it into the real table, than delete the row.

I this the good way of doing it?

Is there any other way?

Thanks !

View 5 Replies View Related

Custom Resolver For Merge Replication

Sep 7, 2006

Hi there!




I'm trying to create a custom resolver for merge replication exactly like in the MS example.


It seems to work, but only ONE time. If I change, insert or delete a
record in a table the second time, the subscriber monitor comes with
the following errors:




Error messages:

Attempted to read or write protected memory. This is often an
indication that other memory is corrupt. (Source: MSSQL_REPL, Error
number: MSSQL_REPL-2147199411)



The Merge Agent encountered an error when executing code in the
'UpdateHandler' method implemented in the business logic handler
'D:Program FilesMicrosoft SQL Server90COMMyResolver.dll'. Ensure
that the overridden 'UpdateHandler' method has been properly
implemented in the business logic handler. (Source: MSSQL_REPL,
Error number: MSSQL_REPL-2147199411)



This last error is of course dependant on my action (update, delete, insert).

My code is -exactly- like the example (I just stripped out the log message).



Does anyone know why I am "trying to read or write protected memory" ?



The thing is that I'm trying to create an application that detects if a
table changes. Is this the right way to do this anyway or are there
better solutions?



Any help is appreciated! Thanks!

View 13 Replies View Related

Merge Replication Conflict Notification

Nov 4, 2004

SQL2K SP4
Windows 2000 server
Merge Replication

How can I get sql server to log to the windows event long when a conflict occurs so that I can set up a notification alert. I have gone to the replication alerts in enterprise manager and set one up but it is never triggered and there is never anything in the windows event log.

View 1 Replies View Related

Merge Replication Conflict Problem

Nov 29, 2006

exec sp_helpmergeconflictrows @conflict_table = 'CMCustomer'

Msg 207, Level 16, State 1, Line 1
Invalid column name 'origin_datasource_id'.


When I run the "Microsoft Replication Conflict View" I am prompted to pick a table. Here are the details of the error message I receive.

===================================

CMCustomer is neither a DataColumn nor a DataRelation for table summary. (System.Data)

------------------------------
Program Location:

at System.Data.DataRowView.get_Item(String property)
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.GetWinnerSQL(DataRow loserRow, Boolean blockFetch)
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.GetSourceRow()
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.FillDetailData()
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.FillDetail()
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.summaryInfoGrid_SelectionChanged(Object sender, SelectionChangedEventArgs args)
at Microsoft.SqlServer.Management.UI.Grid.GridControl.OnSelectionChanged(BlockOfCellsCollection selectedCells)
at Microsoft.SqlServer.Management.UI.Grid.GridControl.SelectedCellsInternal(BlockOfCellsCollection col, Boolean bSet)
at Microsoft.SqlServer.Management.UI.Grid.GridControl.set_SelectedCells(BlockOfCellsCollection value)
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.ResetSummaryGrid()
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.LoadConflict()



When I try to "Remove" then conflict (Conflict type - "4(Update/Delete, Update wins)") I receive the following...

===================================

Column 'CMCustomer' does not belong to table summary. (System.Data)

------------------------------
Program Location:

at System.Data.DataRow.GetDataColumn(String columnName)
at System.Data.DataRow.get_Item(String columnName)
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.SetLogInfo(DataRow logRow, String sql)
at Microsoft.SqlServer.Management.UI.ConflictViewer.ViewerForm.btnClearUpper_Click(Object sender, EventArgs eg)

View 9 Replies View Related

Problem With Conflict Table For Merge Replication

Sep 3, 2007

Hi

I faced with strange problem.
From time to time, during syncronization I get the following errors at the subscriber:

ERROR: -2147200992

SOURCE: Merge Replication Provider

TEXT: The merge process could not store conflict information for article 'Products'. Check the publication properties to determine where conflicts records are stored. When troubleshooting, restart the synchronization with verbose history logging and specify an output file to which to write.

ERROR: 2812

SOURCE: OFF1SQLEXPRESS
TEXT: Could not find stored procedure 'MSmerge_cft_sp_49D28CEAFF8A4ACC5C5462B5027D4E4D'.

ERROR: -2147199481

SOURCE: Merge Replication Provider

TEXT: The Merge Agent was unable to update information about the last synchronization at the Subscriber. Ensure that the subscription exists at the Subscriber, and restart the Merge Agent.


After I refresh the snaphot at the publisher, these errors disappear and the syncronization is completed without any problem. And I can sync easy again week or two..

What is the problem?
What is the right solution?

Yep, I can continue to refresh the snapshot each time when the error appears, but..
maybe there is another approach?

Thanks in advance!

Paul

View 1 Replies View Related

Custom Conflict Resolver

Jan 26, 2006

Hi there,

I have created a custom conflict resolver for an article that is using Merge replication. I can register my custom resolver OK, I can change my merge article to use my new custom resolver, but when a conflict occures the replication monitor shows the following errors:

Error messages:


No signature was present in the subject.
(Source: MSSQL_REPL, Error number: MSSQL_REPL-2146762496)
Get help: http://help/MSSQL_REPL-2146762496

The Custom Resolver Component for article 'BRANCH' does not have a valid digital signature. (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147198713)
Get help: http://help/MSSQL_REPL-2147198713

At first I thought it was because my assembly wasn't signed, so I signed it. I still get the same error.

I have various debug statements in the assembly and I can see that Initialize and HandleChangeStates gets called ok, but no other overrides.

Can anyone help me please?

Thanks

Graham

View 3 Replies View Related

Merge Replication - Examples For Custom Conflict Resolvers?

Oct 30, 2006

I have gone through BOL and various online resources including this one and I can't find any examples on how to use custom conflict resolvers to generate a result row which is a combination of the rows to be merged.

BOL says it can be done, but suitable examples are missing. I have found various posts requesting examples from up to a year ago, but can see no replies with relevant information

In particular I would like to see examples of

1) A stored procedure based custom conflict resolver

2) A business logic handler written in VB .Net

Here's hoping

aero1

View 16 Replies View Related

RMO + Interactive Conflict Resolver Setup

Nov 6, 2006

Hello,

I'm trying to setup the Interactive Conflict Resolver in my C# app via RMO. (using SQL Server 2005)

The only article I can find on MSDN or anywhere is involing T-SQL. Can someone please shed some light on this for me specificaly on the subscriber side.

Thank you! Chris

View 2 Replies View Related

Example Of Stored Proc Conflict Resolver?

Oct 2, 2006



Hi all,

I need to write a custom conflict resolver for an application using merge replication. It's relatively simple logic - compare the two rows from the publisher and the subscriber and the winner is based on the value of one particular column.

Reading BOL gives me the input parameter list for the sp, and specifies that the output should be exactly the winning row. What is doesn't give is any example of how to do this, in particular how to access the two rows in conflict so that they can be compared.

I can do this by dynamically building SELECT statements, one connecting to the table locally on the publisher and another connecting to the subscriber using the form SERVER.DATABASE.OWNER.TABLE, but this requires me to explicitly have the subscriber as a linked server to do this. An example of my revolting code is appended to this post.

Is this what I have to do, or is there some table I can access on the publisher that has the conflicting rows in so I can compare them without going back to the subscriber?

Thanks for your help



Richard

---- code sample --

ALTER PROCEDURE [dbo].[prRep_ResolveInventoryConflicts]

@tableowner sysname, @tablename sysname, @rowguid uniqueidentifier,
@subscriber sysname, @subscriber_db sysname,
@log_conflict int OUTPUT, @conflict_message nvarchar(512) OUTPUT,
@destination_owner sysname

AS

BEGIN

DECLARE @qrySubscriber varchar(255)
DECLARE @qryPublisher varchar(255)
DECLARE @Publisher sysname
DECLARE @RecentCheck datetime

-- Temp table with same form as tbl_Inventory

CREATE TABLE #ConflictingRows (
[Machine] [sysname]NOT NULL,
[LocationID] [int] NOT NULL,
[PartGUID] [uniqueidentifier] NOT NULL,
[Qty] [int] NOT NULL ,
[LastUpdatedDtm] [datetime] NOT NULL,
[LastUpdatedUser] [varchar](50) NOT NULL ,
[rowguid] [uniqueidentifier] NOT NULL

)

-- Build the T-SQL To run against publisher and subscriber

SET @Publisher = @@Servername
SET @qryPublisher =
'INSERT INTO #ConflictingRows
SELECT '+@Publisher+' as Machine, * FROM '+@tableowner+'.'+@tablename+
'WHERE rowguid = '+CAST(@rowguid as varchar(40)) +';'

SET @qrySubscriber =
'INSERT INTO #ConflictingRows
SELECT '+@subscriber+ ' AS Machine, * FROM '+@subscriber+'.'+@subscriber_db+'.'+@tableowner+'.'+@tablename+
'WHERE rowguid = ' + CAST(@rowguid as varchar(40)) +';'

-- execute the stored procedures

EXECUTE @qryPublisher;
EXECUTE @qrySubscriber;

-- Compare the two rows and return the winning row, ie the one that was last updated by a human checking the inventory

SELECT @RecentCheck = MAX(LastUpdatedDtm) FROM #ConflictingRows

SELECT TOP 1 * FROM #ConflictingRows where LastUpdatedDtm=@RecentCheck;

-- Cleanup and exit

DROP TABLE #ConflictingRows

END

----

View 11 Replies View Related

Custom Conflict Resolver Example Code In C#

Dec 5, 2006

Hi!



I'm trying to create a custom conflict resolver for SQL Server 2000 in
C# but i can't seem to find any source code examples of a *.dll where i
can actually see what needs to be done.



Any help is welcome.



Thanks

View 3 Replies View Related

Need Help On COM-based Custom Conflict Resolver

Dec 21, 2006

Hi everyone,

I am working on a COM-based custom conflict resolver (vb.net) for a merge replication problem that I am having. This is what I am trying to accomplish. 1. Have a Last_Upd_Dt column. 2. When there is a conflict between publisher and subscriber on a column, the winner is the most recent date in Last_Upd_Dt and want the value for that column from that source. 3. If there is no conflict on a column and the column was updated by either the publisher or subscriber, I want to keep the change made by the publisher or the subscriber. (i.e publisher made change in col #1, subscriber made change in col #2, no conflict, the resulting row will now have the col #1 value from publisher, col # 2 will have value from subscriber. Essentially merging the changes.)

Does anyone have any examples of a COM-based Conflict Resolver that implements ICustomResolver for SQL Server 2005? Can this be done using the Business Logic Handler (examples?) ?

TIA

View 4 Replies View Related

Creating A Conflict Viewer/resolver

May 22, 2006

Hello,

I see that MS has a conflict viewer that can be accessed by managment studio, however I would like to create one with some customized options. Is there a sample of code somewhere to start this? I could really find anything in BOL. Thanks in advance.

John

View 1 Replies View Related

Merge Replication Conflict Tables Stored Proces And Views

May 4, 2006

We have merge replication running with anamous subscribers
We have generested lots of views tables and stored procedures like
sp_ins_C435D35DDEC04FE2517CCD52A9024EC4

ctsv_07BA7383A12B4654B4D3A69B3053B227
aonflict_DH_tblReplicationRegion

How do we get rud of these I am concerned it will fill up the publisher database
Can any one advise

View 1 Replies View Related

Creating And Configuring Custom Conflict Resolver.

Aug 12, 2005

Hi

View 1 Replies View Related

Stored Procedure Based Custom Conflict Resolver Truncates Data

May 17, 2007

I created a stored procedure based custom conflict resolver in SQL 2005, I return the winning result set and also save that result set to a test table to compare the values. The values saved to the test table are correct but some of the values saved as the conflict winter are truncated.

Example a char(3) filed is updated at the subscriber as €˜111€™ and updated at the publisher as €˜222€™, in my custom conflict resolver if I use the value from the subscriber the conflict resolver updates the field as €™11 €˜, if I use the publisher value the conflict resolver updates the field as €™22 €˜. Now the same records is saved to the test table correctly as either €˜111€™ or €˜222€™ depending on the logic I used. So the result set has the correct values, its after the custom conflict resolver is called where the values is somehow truncated. Has anybody run into this before and what steps can I take to avoid this.

Thank you,
Pauly C

View 1 Replies View Related

Merge Replication Between MSDE Doesn't Work!

Sep 4, 2006

Hello!

I have a problem with creating Merge replication between two instances of MSDE 2000. In the article http://support.microsoft.com/kb/324992/, published by Microsoft, described, that it is possible.

I am creating Merge Publication at MSDE 2000, with Distributor and Publisher configured at same machine, with options "Allow Pull Subscriptions" and "Allow Anonymous Subscriptions". There is no problem with creating of Publication. Even snapshot generation finishes successfully. Also I create a login with SQL Server Authentication and "System Administrators" database role at the publisher in order to connect to it from Subscriber.

The problem occurs, when creating anonymous pull subscription to this publication at another instance of MSDE. During initial synchronization an error occurs:

The process could not connect to Distributor '<publisher_server_name>'. Login failed for user '<login_created_at_publisher>'. Reason: Not associated with a trusted SQL Server connection.  The step failed.

Although I didn't use Windows Authentication at all, so Subscriber doesn't need to connect to Distributor using trusted SQL Server connection.

What is a problem and how can I workaround?

Note: The same works correctly, if MS SQL Server used as a Publisher instead of MSDE.

Please, help!

I can provide publication and subscription creation scripts, if required.

View 1 Replies View Related

Merge Replication Sqlserver2000sp4 Sqlce3.0 Does That Really Work ?????

Sep 20, 2007



Hi,
we have developped an application on pdaphone. we try to use merge replication between our sql server 2000 sp4 and sql Ce 3.0 via GPRS . Sometime that works very fine . Sometime it's a nightmare !!! nothing work . we have multiple error....

can someone tell me, what are the rules to make it work ?
can someone tell me, if it really works fine ?

thanks




View 1 Replies View Related

Can I Set A Default Range For The Identity Values For Merge Replication?

May 8, 2006

Hello,

We have a couple of tables that can have quite a bit of data each day prior to replication. Can we increase the default values for a table for each subscription? For example we have a table called table1 and on the sqlexpress client they could enter in 10000 rows a day, on table2 it's just 100 rows a day. How can we increase the values to where we do not get the error for table1 stating that the insert failed because it conflicted with the identity range check constraint. Thanks in advance.

View 1 Replies View Related

Conflict In Merge Prelication

Oct 3, 2007

Hi,

I have 2-3 tables which contains are getting conflict error "Primary Key Violation" because the Same Primary Key is getting updated both at Publishing end and Subscribing end.

Can this be resolved any how without any manual intervention?

Regards,
Ruchir

View 4 Replies View Related

Replication Conflict Tables

Jul 6, 2001

I have some rogue replication conflict tables that I can't delete because they are system tables. They are names aonflict_<tablename> and bonflict_<tablename>. They are definitely not needed anymore. How can I delete them ? Does anyone know how to delete a system table ?

View 1 Replies View Related

Replication Without Conflict Checking

May 30, 2007

Hi all,

Is there a way to replicate all data in a table but on certain columns avoid throwing a conflict? I have serveral SQL servers running Tx-Rep and almost all of the tables contain a DateModified field. I don't really need to check for conflicts on this data but want to keep it in tact as much as possible.

Any Ideas?

Thanks in advance,
Michael

View 5 Replies View Related

Cursor And Replication Conflict

Mar 20, 2008

Hello everybody,

we are running business critical application in 24*7 enviroment. Application is written in java and use JDBC 1.2 to read and write data into SQL 2005 SP2. We also use push transactional replication and as a part of this replication we run snapshot agent regulary.

Problem is that our java application receives regulary error: "Could not complete cursor operation because the table schema changed after the cursor was declared." After some further investigation with Profiler we found out, that snapshot agent calls sp_MSreplupdateschema with high probability this procedure changes at least modify_date of some tables included in replication. In profiler we also found that JDBC broadly uses cursors to access data. After the call sp_MSreplupdateschema all cursores declared before the call failed.

We tried to setup JDBC driver not to use cursors by setting SelectMethod=direct in configurations file. But this started deadlocks.

From my point of view it`s legitim to use cursors and snapshot agent together. The question is why snapshot agent modify table schema and how to solve this problem?

I send same question into Replication forum. Till now without any answer. I hope to have more luck there.

Thanks in advance for any advice

View 1 Replies View Related

One Conflict &&> All Other Replication Hangs

Jun 12, 2007

hi all



let's say i have three publications running on a network of one central server and four shops.

- a merge replication that keeps the price-table up to date between all shops and the central server

- a transactional replication of the arrived_orders-table from the central server to the shop in case

- a transactional replication of the sold_products-table fromt he shops to the central server.



the whole replication network runs on a distribution database that is located on the central server.



now, i've noticed already a few times, when a conflict occurs in one of the replications, also all other replications stop working. (for example when the transactional replication can not insert a line in the sold_products table because of a violation against a UNIQUE constraint in the central server).



Is it normal that also the merge replication and the other transactional replication don't do their inserts, updates etc any more????



Thanks

View 8 Replies View Related

MSDE 2000 Replication Conflict

Jun 28, 2006

I am using MSDE 2000 for my replication. the problem is that althought at time creating publication it inserts GUID into every table but if one table in 2 nodes has same primary key, it inserts only one row ( accorrding to prority ). there are some Conflict Reslover methods that can be used for this purpose. i wanted to ask that is there any other way for me to resolve this conflict. i am asking for a new way because my database schema has been created and a lot of coding behalf of that schema has been done.


I'd be thankful if you guide me.
Regards,

View 4 Replies View Related

Replication Conflict Error.. How To Add Datas To Publisher ....

Aug 29, 2006

Hi..

I have configured publisher, distributer,subscriber... and tried to replicate it... it has done successfully...

When i try to add datas to the publisher ... it says

"conflict error"

can you please tell me how to check the replication is successfull or not.

and i want to add datas to publisher so that it should frequently updated in subscriber...

View 1 Replies View Related

Help Needed Urgently! - SQL7 Replication Conflict Problem

Dec 18, 2001

Hi all,

i think i have serious problem. i have almost 20,000 rows with the following conflict on a table (generated by merge replication over a period of around 3 weeks) :

'The row was updated at 'SubscriberServer3.DatabaseA' but could not be updated 'at 'PublicationServer1.DatabaseA'. Metadata mismatch'

i have 20 remote subscribers & 1 publisher. The above message originates from practically everywhere.

Besides dropping(not practical at the moment) & recreating replication to get rid of them, what else can i do to resolve this problem?? Do i have to resolve this problem row by row?? i'm at my wit's end. Please help!!

Thanx in advance.

View 2 Replies View Related

Replication :: Difference Between Snapshot And Transaction And Merge Replication?

May 26, 2015

What is the main difference between snapshot and transactional and merge replication?

View 5 Replies View Related

How Do We Add A New Column To A Merge Replication Article, But Specify It As Not For Replication?

Aug 30, 2007

Hi all,

I know that adding a column using ALTER TABLE to add a column automatically allows SQLSERVER 2005 to replicate the schema changes to the subscribers, however, I would like to add a new column to an existing article that is being used for merge replication, however, I don't want this column to be replicated. Re-initialising the subscriptions is not a option. Help would be appreciated.

I am using SQLSERVER 2005 (SP1).

View 3 Replies View Related

Transact SQL :: Update Statement In Merge Does Not Work

Jul 29, 2015

In the following t-sql 2012 merge statement, the insert statement works but the update statement does not work. I know that is true since I looked at the results of the update statement:

Merge TST.dbo.LockCombination AS LKC1
USING
(select LKC.comboID,LKC.lockID,LKC.seq,A.lockCombo2,A.schoolnumber,LKR.lockerId
from
[LockerPopulation] A
JOIN TST.dbo.School SCH ON A.schoolnumber = SCH.type

[Code] ...

Thus can you show me some t-sql 2012 that I can use to make update statement work in the merge function?

View 3 Replies View Related

Merge Replication Set Off Transactional Replication

Oct 9, 2007

I am working on bringing our disaster recovery site to be a live site. Currently we replicate to one of out servers (server B) with merge replication (from server A). Server A also does one way transactional replication form some table to several other servers including servers at the DR site.

This setup is not going to be fast enough for what we need so I am wondering if a table is receiving merge replication will the merge updates also replicate down the transaction path??

Example...
Server B update a row and merges to Server A. With this update them replicate (via transactional) to Server C??

thanks...

View 5 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved