ReplicationObject.ConnectionContext Property
SQL Server 2012
Gets or sets the connection to an instance of Microsoft SQL Server.
Namespace: Microsoft.SqlServer.Replication
Assembly: Microsoft.SqlServer.Rmo (in Microsoft.SqlServer.Rmo.dll)
Property Value
Type: Microsoft.SqlServer.Management.Common.ServerConnectionA ServerConnection object.
// Set the Publisher, publication database, and publication names. string publisherName = publisherInstance; string publicationName = "AdvWorksSalesOrdersMerge"; string publicationDbName = "AdventureWorks2012"; ReplicationDatabase publicationDb; MergePublication publication; // Create a connection to the Publisher. ServerConnection conn = new ServerConnection(publisherName); try { // Connect to the Publisher. conn.Connect(); // Enable the database for merge publication. publicationDb = new ReplicationDatabase(publicationDbName, conn); if (publicationDb.LoadProperties()) { if (!publicationDb.EnabledMergePublishing) { publicationDb.EnabledMergePublishing = true; } } else { // 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 = winLogin; publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword; // 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. publication.Create(); // Create a Snapshot Agent job for the publication. publication.CreateSnapshotAgent(); } else { throw new ApplicationException(String.Format( "The {0} publication already exists.", publicationName)); } } catch (Exception ex) { // Implement custom application error handling here. throw new ApplicationException(String.Format( "The publication {0} could not be created.", publicationName), ex); } finally { conn.Disconnect(); }
' Set the Publisher, publication database, and publication names. Dim publisherName As String = publisherInstance Dim publicationName As String = "AdvWorksSalesOrdersMerge" Dim publicationDbName As String = "AdventureWorks2012" Dim publicationDb As ReplicationDatabase Dim publication As MergePublication ' Create a connection to the Publisher. Dim conn As ServerConnection = New ServerConnection(publisherName) Try ' Connect to the Publisher. conn.Connect() ' Enable the database for merge publication. publicationDb = New ReplicationDatabase(publicationDbName, conn) If publicationDb.LoadProperties() Then If Not publicationDb.EnabledMergePublishing Then publicationDb.EnabledMergePublishing = True End If Else ' Do something here if the database does not exist. Throw New ApplicationException(String.Format( _ "The {0} database does not exist on {1}.", _ publicationDb, publisherName)) End If ' 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 = winLogin publication.SnapshotGenerationAgentProcessSecurity.Password = winPassword ' 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 = publication.Attributes Or _ PublicationAttributes.AllowSubscriberInitiatedSnapshot publication.Attributes = publication.Attributes Or _ PublicationAttributes.DynamicFilters ' Enable pull and push subscriptions publication.Attributes = publication.Attributes Or _ PublicationAttributes.AllowPull publication.Attributes = publication.Attributes Or _ PublicationAttributes.AllowPush If Not publication.IsExistingObject Then ' Create the merge publication. publication.Create() ' Create a Snapshot Agent job for the publication. publication.CreateSnapshotAgent() Else Throw New ApplicationException(String.Format( _ "The {0} publication already exists.", publicationName)) End If Catch ex As Exception ' Implement custom application error handling here. Throw New ApplicationException(String.Format( _ "The publication {0} could not be created.", publicationName), ex) Finally conn.Disconnect() End Try