Sunday, February 12, 2012

Cannot fine the object “MSmerge_ctsv_... Because it does not exists or you do not have permissio

I keep getting the following error message during the initial merge agent.

· “The merge process was unable to deliver the snapshot to the subscriber.If using Web synchronization, the merge process may have been unable to create or write the message file, when troubleshooting, restart the sychronzation with verbose history loggin and specify an output file to write.

· Cannot fine the object “MSmerge_ctsv_B5ECD41086F24A64B8040A41A75B2DC4”, Because it does not exists or you do not have permission.(source: MSSQLServer, Error number 15151)

I do see this view in the publication and if I run the following command on the publisher I get…

select * from Msmerge_ctsv_B5ECD41086F24A64B8040A41A75B2DC4

I get

tablenick rowguid generation partchangegen lineage colv1 marker logical_record_parent_rowguid logical_record_lineage

(0 row(s) affected)

I have another publication working on this same server that is working, both are from a copy from a template database.Please advise to what this problem could be and what I can do to resolve this.


Thank you,

Pauly C

The issue was the mobile server name was changed but not dropped and re-added back so the values of@.@.servername and serverproperty(‘servername’) did not match. Once I fixed this everything replicated fine. Not a very intuitive error but if the error returns somethign like "Cannot fine the object “MSmerge_ctsv_..." check the subscriber server name by running

select @.@.servername as oldservername, serverproperty('servername') as newservername, case when @.@.servername <> serverproperty('servername') then '*** Error - Server name changed, replication will not work' else 'Replication friendly' end as cMessage

also this is a script I use to run the procs to drop and add the server...

Use Master

IF (select SERVERPROPERTY('ServerName')) <> (SELECT @.@.Servername )

begin

DECLARE @.SQL VARCHAR(256), @.oldsvrname varchar(128), @.newsvrname varchar(128)

select @.oldsvrname = cast(@.@.servername as varchar(128)), @.newsvrname = cast(SERVERPROPERTY('ServerName') as varchar(128))

set @.SQL = 'Sp_DropServer @.server = ''' + @.oldsvrname + ''', @.droplogins =''droplogins'''

exec( @.SQL)

SET @.SQL = 'Sp_Addserver @.server =''' + @.newsvrname + ''', @.local= ''LOCAL'' , @.duplicate_ok = ''duplicate_OK'' '

exec(@.SQL )

end

** must restart services at this point.

Thank you,

Pauly C

|||Maybe if you would run the agent with a higher OutputVerboseLevel, perhaps it may have given you clues.|||Actually I did that but it gave the same error message.

No comments:

Post a Comment