Click here to Skip to main content
11,717,883 members (80,879 online)
Rate this: bad
Please Sign up or sign in to vote.
See more: C#2.0 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 0: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 at 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
0 Sergey Alexandrovich Kryukov 849
1 OriginalGriff 215
2 F-ES Sitecore 210
3 Maciej Los 140
4 Jochen Arndt 120
0 Sergey Alexandrovich Kryukov 1,494
1 OriginalGriff 535
2 Maciej Los 529
3 Richard MacCutchan 440
4 CHill60 415

Advertise | Privacy | Mobile
Web03 | 2.8.150901.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