Click here to Skip to main content
11,930,231 members (46,329 online)
Rate this:
Please Sign up or sign in to vote.
See more: C#2.0 C# SQL-Server
I am trying to create a Merge Replication using RMO Programming which i got from here

string publisherName = "DataSourceName";
        string publicationName = "AdvWorksSalesOrdersMerge";
        string publicationDbName = "AdventureWorksDW2008R2";
        ReplicationDatabase publicationDb;
        MergePublication publication;
        // Create a connection to the Publisher.
        ServerConnection conn = new ServerConnection(publisherName);
             //Connect to the Publisher.
            // Enable the database for merge publication.               
            publicationDb = new ReplicationDatabase(publicationDbName, conn);
            if (publicationDb.LoadProperties())
                if (!publicationDb.EnabledMergePublishing)
                    publicationDb.EnabledMergePublishing = true;
               //  Do something here if the database does not exist. 
                throw new ApplicationException(String.Format(
                    "The {0} database does not exist on {1}.",
                    publicationDb, publisherName));
            // Set the required properties for the merge publication.
            publication = new MergePublication();
            publication.ConnectionContext = conn;
            publication.Name = publicationName;
            publication.DatabaseName = publicationDbName;
            // Enable precomputed partitions.
            publication.PartitionGroupsOption = PartitionGroupsOption.True;
             //Specify the Windows account under which the Snapshot Agent job runs.
            // This account will be used for the local connection to the 
            // Distributor and all agent connections that use Windows Authentication.

              publication.SnapshotGenerationAgentProcessSecurity.Login = userid;
               publication.SnapshotGenerationAgentProcessSecurity.Password = password;
             //Explicitly set the security mode for the Publisher connection
            // Windows Authentication (the default).
            publication.SnapshotGenerationAgentPublisherSecurity.WindowsAuthentication = true;
             //Enable Subscribers to request snapshot generation and filtering.
            publication.Attributes |= PublicationAttributes.AllowSubscriberInitiatedSnapshot;
            publication.Attributes |= PublicationAttributes.DynamicFilters;
            // Enable pull and push subscriptions.
            publication.Attributes |= PublicationAttributes.AllowPull;
            publication.Attributes |= PublicationAttributes.AllowPush;
            if (!publication.IsExistingObject)
                 //Create the merge publication.
                // Create a Snapshot Agent job for the publication.
                throw new ApplicationException(String.Format(
                    "The {0} publication already exists.", publicationName));
        catch (Exception ex)
             //Implement custom application error handling here.
            throw new Exception(String.Format("The publication {0} could not be created.", publicationName), ex);

but at this line

publicationDb.EnabledTransPublishing = true;

i am getting error -" An exception occurred while executing a Transact-SQL statement or batch."

So please help me out from this problem ..

waiting for your answers..

Posted 3-Aug-12 1:16am

1 solution

Rate this: bad
Please Sign up or sign in to vote.

Solution 1

Did you specify the correct userid-password for the connection? Security privilege in place?

Have a look at this MSDN support thread[^], not exactly same but hints on system-administrator account in place and active.
Sourav Kumar Panda 7-Aug-12 10:47am
Yes all credentials are correct and Connection is also established but at the next line i.e. (publicationDb.EnabledTransPublishing = true;) i m getting error.

The control not even going this line also

publication.SnapshotGenerationAgentProcessSecurity.Login = userid;
publication.SnapshotGenerationAgentProcessSecurity.Password = password;

thnx for your replay..

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
Top Experts
Last 24hrsThis month

Advertise | Privacy | Mobile
Web01 | 2.8.151126.1 | Last Updated 3 Aug 2012
Copyright © CodeProject, 1999-2015
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100