TransPublication Класс

Определение

Представляет публикацию транзакций.

public ref class TransPublication sealed : Microsoft::SqlServer::Replication::Publication
public sealed class TransPublication : Microsoft.SqlServer.Replication.Publication
type TransPublication = class
    inherit Publication
Public NotInheritable Class TransPublication
Inherits Publication
Наследование

Примеры

В следующем примере производится создание публикации транзакций.

// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";
string publisherName = publisherInstance;

ReplicationDatabase publicationDb;
TransPublication publication;

// Create a connection to the Publisher using Windows Authentication.
ServerConnection conn;
conn = new ServerConnection(publisherName);


try
{
    // Connect to the Publisher.
    conn.Connect();

    // Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);

    // If the database exists and is not already enabled, 
    // enable it for transactional publishing.
    if (publicationDb.LoadProperties())
    {
        if (!publicationDb.EnabledTransPublishing)
        {
            publicationDb.EnabledTransPublishing = true;
        }

        // If the Log Reader Agent does not exist, create it.
        if (!publicationDb.LogReaderAgentExists)
        {
            // Specify the Windows account under which the agent job runs.
            // This account will be used for the local connection to the 
            // Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin;
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword;

            // Explicitly set authentication mode for the Publisher connection
            // to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = true;

            // Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent();
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "The {0} database does not exist at {1}.",
            publicationDb, publisherName));
    }

    // Set the required properties for the transactional publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional;

    // Activate the publication so that we can add subscriptions.
    publication.Status = State.Active;

    // Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes |= PublicationAttributes.AllowPull;
    publication.Attributes |= PublicationAttributes.AllowPush;
    publication.Attributes |= PublicationAttributes.IndependentAgent;

    // 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;

    if (!publication.IsExistingObject)
    {
        // Create the transactional 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 publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"
Dim publisherName As String = publisherInstance

Dim publicationDb As ReplicationDatabase
Dim publication As TransPublication

' Create a connection to the Publisher using Windows Authentication.
Dim conn As ServerConnection
conn = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Enable the AdventureWorks2012 database for transactional publishing.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)

    ' If the database exists and is not already enabled, 
    ' enable it for transactional publishing.
    If publicationDb.LoadProperties() Then
        If Not publicationDb.EnabledTransPublishing Then
            publicationDb.EnabledTransPublishing = True
        End If

        ' If the Log Reader Agent does not exist, create it.
        If Not publicationDb.LogReaderAgentExists Then
            ' Specify the Windows account under which the agent job runs.
            ' This account will be used for the local connection to the 
            ' Distributor and all agent connections that use Windows Authentication.
            publicationDb.LogReaderAgentProcessSecurity.Login = winLogin
            publicationDb.LogReaderAgentProcessSecurity.Password = winPassword

            ' Explicitly set authentication mode for the Publisher connection
            ' to the default value of Windows Authentication.
            publicationDb.LogReaderAgentPublisherSecurity.WindowsAuthentication = True

            ' Create the Log Reader Agent job.
            publicationDb.CreateLogReaderAgent()
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "The {0} database does not exist at {1}.", _
         publicationDb, publisherName))
    End If

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Specify a transactional publication (the default).
    publication.Type = PublicationType.Transactional

    'Enable push and pull subscriptions and independent Distribition Agents.
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPull
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.AllowPush
    publication.Attributes = _
    publication.Attributes Or PublicationAttributes.IndependentAgent

    ' Activate the publication so that we can add subscriptions.
    publication.Status = State.Active

    ' 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

    If Not publication.IsExistingObject Then
        ' Create the transactional 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

В этом примере удаляется публикация транзакций.

// Define the Publisher, publication database, 
// and publication names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";

TransPublication publication;
ReplicationDatabase publicationDb;

// Create a connection to the Publisher 
// using Windows Authentication.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    conn.Connect();

    // Set the required properties for the transactional publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // Delete the publication, if it exists and has no subscriptions.
    if (publication.LoadProperties() && !publication.HasSubscription)
    {
        publication.Remove();
    }
    else
    {
        // Do something here if the publication does not exist
        // or has subscriptions.
        throw new ApplicationException(String.Format(
            "The publication {0} could not be deleted. " +
            "Ensure that the publication exists and that all " +
            "subscriptions have been deleted.",
            publicationName, publisherName));
    }

    // If no other transactional publications exists,
    // disable publishing on the database.
    publicationDb = new ReplicationDatabase(publicationDbName, conn);
    if (publicationDb.LoadProperties())
    {
        if (publicationDb.TransPublications.Count == 0)
        {
            publicationDb.EnabledTransPublishing = false;
        }
    }
    else
    {
        // Do something here if the database does not exist.
        throw new ApplicationException(String.Format(
            "The database {0} does not exist on {1}.",
            publicationDbName, publisherName));
    }
}
catch (Exception ex)
{
    // Implement application error handling here.
    throw new ApplicationException(String.Format(
        "The publication {0} could not be deleted.",
        publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication database, 
' and publication names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication
Dim publicationDb As ReplicationDatabase

' Create a connection to the Publisher 
' using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    conn.Connect()

    ' Set the required properties for the transactional publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' Delete the publication, if it exists and has no subscriptions.
    If publication.LoadProperties() And Not publication.HasSubscription Then
        publication.Remove()
    Else
        ' Do something here if the publication does not exist
        ' or has subscriptions.
        Throw New ApplicationException(String.Format( _
         "The publication {0} could not be deleted. " + _
         "Ensure that the publication exists and that all " + _
         "subscriptions have been deleted.", _
         publicationName, publisherName))
    End If

    ' If no other transactional publications exists,
    ' disable publishing on the database.
    publicationDb = New ReplicationDatabase(publicationDbName, conn)
    If publicationDb.LoadProperties() Then
        If publicationDb.TransPublications.Count = 0 Then
            publicationDb.EnabledTransPublishing = False
        End If
    Else
        ' Do something here if the database does not exist.
        Throw New ApplicationException(String.Format( _
         "The database {0} does not exist on {1}.", _
         publicationDbName, publisherName))
    End If
Catch ex As Exception
    ' Implement application error handling here.
    Throw New ApplicationException(String.Format( _
     "The publication {0} could not be deleted.", _
     publicationName), ex)
Finally
    conn.Disconnect()
End Try

Комментарии

Потокобезопасность

Все общедоступные статические члены (Shared в Microsoft Visual Basic) этого типа безопасны для многопоточных операций. Потокобезопасная работа с членами экземпляров типа не гарантируется.

Конструкторы

TransPublication()

Создает новый экземпляр класса TransPublication.

TransPublication(String, String, ServerConnection)

Создает новый экземпляр класса TransPublication с обязательными свойствами.

TransPublication(String, String, ServerConnection, Boolean)

Создает новый экземпляр класса TransPublication с обязательными свойствами, и указывает, создано ли задание агента моментальных снимков для публикации.

Свойства

AltSnapshotFolder

Возвращает или задает альтернативное местонахождение файла моментального снимка для публикации.

(Унаследовано от Publication)
Attributes

Возвращает или задает атрибуты публикации.

(Унаследовано от Publication)
CachePropertyChanges

Возвращает или задает значение, указывающее, следует ли кэшировать изменения, внесенные в свойства репликации, или применять их немедленно.

(Унаследовано от ReplicationObject)
CompatibilityLevel

Возвращает или задает раннюю версию microsoft SQL Server, запущенную на подписчиках, которые может поддерживать упоминаемая публикация.

(Унаследовано от Publication)
ConflictPolicy

Возвращает или задает политику разрешения конфликтов для публикаций, поддерживающих обновляемые подписки.

ConflictRetention

Возвращает или задает число дней, в течение которых конфликтующие строки данных хранятся в таблицах конфликтов.

(Унаследовано от Publication)
ConnectionContext

Возвращает или задает подключение к экземпляру Microsoft SQL Server.

(Унаследовано от ReplicationObject)
ContinueOnConflict

Определяет, продолжает ли агент распространителя обрабатывать изменения после обнаружения конфликта.

CreateSnapshotAgentByDefault

Возвращает или задает значение, указывающее, добавляется ли задание агента моментальных снимков автоматически при создании публикации.

(Унаследовано от Publication)
DatabaseName

Возвращает или задает имя базы данных публикации.

(Унаследовано от Publication)
Description

Возвращает или задает текстовое описание публикации.

(Унаследовано от Publication)
FtpAddress

Возвращает или задает адрес компьютера FTP-сервера для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
FtpLogin

Возвращает или задает имя входа, используемое для подключения к серверу FTP для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
FtpPassword

Устанавливает пароль для имени входа, используемый для подключения к серверу FTP, для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
FtpPort

Возвращает или задает порт компьютера FTP-сервера для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
FtpSubdirectory

Возвращает или задает вложенный каталог на компьютере FTP-сервера для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
HasSubscription

Возвращает значение, указывающее, имеет ли публикация одну или более подписок.

(Унаследовано от Publication)
IsExistingObject

Возвращает значение, указывающее, существует ли объект на сервере.

(Унаследовано от ReplicationObject)
Name

Возвращает или задает имя публикации.

(Унаследовано от Publication)
PeerConflictDetectionEnabled

Возвращает значение, указывающее, включено ли обнаружение конфликтов в одноранговой репликации посредством SetPeerConflictDetection(Boolean, Int32).

PeerOriginatorID

Возвращает идентификатор узла в одноранговой топологии; этот идентификатор используется для обнаружения конфликтов, если свойство PeerConflictDetectionEnabled имеет значение true.

PostSnapshotScript

Возвращает или задает имя и полный путь к файлу скрипта Transact-SQL, который выполняется после применения начального моментального снимка к подписчику.

(Унаследовано от Publication)
PreSnapshotScript

Возвращает или задает имя и полный путь к файлу скрипта Transact-SQL, который выполняется перед применением начального моментального снимка к подписчику.

(Унаследовано от Publication)
PubId

Возвращает значение, однозначно определяющее публикацию.

(Унаследовано от Publication)
PublisherName

Возвращает или задает имя издателя, отличного от SQL Server.

QueueType

Возвращает или задает тип очереди для использования с публикациями, допускающими подписки, обновляемые посредством очередей.

ReplicateDdl

Возвращает или задает параметры репликации языка описания данных (DDL), которые определяют, реплицируются ли изменения языка описания данных.

(Унаследовано от Publication)
RetentionPeriod

Возвращает или задает продолжительность времени до истечения подписки, если подписка не синхронизирована с публикацией.

(Унаследовано от Publication)
SecureFtpPassword

Устанавливает пароль (как объект SecureString) для имени входа, используемый для подключения к серверу FTP для публикаций, которые позволяют выполнять инициализацию подписки через FTP.

(Унаследовано от Publication)
SnapshotAgentExists

Возвращает значение , если существует задание агент SQL Server для создания начального моментального снимка для этой публикации.

(Унаследовано от Publication)
SnapshotAvailable

Возвращает значение, указывающее, доступны ли для использования файлы моментальных снимков для этой публикации.

SnapshotGenerationAgentProcessSecurity

Возвращает объект, который задает учетную запись Windows, под которой выполняется задание агента моментальных снимков.

(Унаследовано от Publication)
SnapshotGenerationAgentPublisherSecurity

Возвращает контекст безопасности, используемый агентом моментальных снимков для подключения к издателю.

(Унаследовано от Publication)
SnapshotJobId

Возвращает идентификатор задания агента моментальных снимков для текущей публикации.

(Унаследовано от Publication)
SnapshotMethod

Возвращает или задает формат файла данных исходного моментального снимка.

(Унаследовано от Publication)
SnapshotSchedule

Возвращает объект, который задает расписание для агента моментальных снимков для текущей публикации.

(Унаследовано от Publication)
SqlServerName

Возвращает имя экземпляра microsoft SQL Server, к которому подключен этот объект.

(Унаследовано от ReplicationObject)
Status

Возвращает или задает состояние публикации.

(Унаследовано от Publication)
TransArticles

Представляет статьи в публикации.

TransSubscriptions

Представляет подписки на публикацию.

Type

Возвращает или задает тип публикации.

(Унаследовано от Publication)
UserData

Возвращает или задает свойство объекта, которое позволяет пользователям прикреплять свои собственные данные к объекту.

(Унаследовано от ReplicationObject)

Методы

BrowseSnapshotFolder(String, String)

Возвращает полный путь к местонахождению, в котором были сформированы файлы моментальных снимков для определенной подписки.

CheckValidCreation()

Проверяет создание допустимой репликации.

(Унаследовано от ReplicationObject)
CheckValidDefinition(Boolean)

Указывает, следует ли проверить действительность определения.

(Унаследовано от Publication)
CommitPropertyChanges()

Отправляет все кэшированные инструкции изменения свойств экземпляру Microsoft SQL Server.

(Унаследовано от ReplicationObject)
CopySnapshot(String, String, String)

Копирует последние файлы моментальных снимков для определенной подписки в папку назначения.

Create()

Создает публикацию.

(Унаследовано от Publication)
CreateSnapshotAgent()

Создает задание агент SQL Server, которое используется для создания начального моментального снимка публикации, если это задание еще не существует.

(Унаследовано от Publication)
Decouple()

Отделяет связанный объект репликации от сервера.

(Унаследовано от ReplicationObject)
EnumArticles()

Возвращает статьи в публикации.

(Унаследовано от Publication)
EnumPublicationAccesses(Boolean)

Возвращает имена входа, которые имеют доступ к издателю.

(Унаследовано от Publication)
EnumSubscriptions()

Возвращает подписки, подписанные на публикацию.

(Унаследовано от Publication)
GetChangeCommand(StringBuilder, String, String)

Возвращает команду на изменение из репликации.

(Унаследовано от ReplicationObject)
GetCreateCommand(StringBuilder, Boolean, ScriptOptions)

Возвращает команду на создание из репликации.

(Унаследовано от ReplicationObject)
GetDropCommand(StringBuilder, Boolean)

Возвращает команду на удаление из репликации.

(Унаследовано от ReplicationObject)
GrantPublicationAccess(String)

Добавляет указанное имя входа в список доступа к публикации (PAL).

(Унаследовано от Publication)
InternalRefresh(Boolean)

Инициирует внутреннее обновление из репликации.

(Унаследовано от ReplicationObject)
Load()

Загружает свойства существующего объекта с сервера.

(Унаследовано от ReplicationObject)
LoadProperties()

Загружает свойства существующего объекта с сервера.

(Унаследовано от ReplicationObject)
MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

Регистрирует подписку по запросу на издателе.

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType, Boolean)

Представляет публикацию транзакций.

PostTracerToken()

Публикует трассировочный токен в журнале издателя, чтобы начать процесс определения задержки.

Refresh()

Повторно загружает свойства объекта.

(Унаследовано от ReplicationObject)
RefreshSubscriptions()

Обновляет все подписки на публикацию, чтобы включить вновь добавленные статьи.

ReinitializeAllSubscriptions()

Помечает все подписки на публикацию для повторной инициализации.

ReinitializeAllSubscriptions(Boolean)

Отмечает все подписки на публикацию для повторной инициализации, с возможностью аннулировать существующий моментальный снимок.

Remove()

Удаляет существующую публикацию.

(Унаследовано от Publication)
Remove(Boolean)

Удаляет существующую публикацию, даже если нет доступа к распространителю.

(Унаследовано от Publication)
RemovePullSubscription(String, String)

Удаляет регистрацию для подписки по запросу на издателе.

ReplicateUserDefinedScript(String)

Реплицирует выполнение определенного пользователем скрипта на подписчиках указанной публикации.

(Унаследовано от Publication)
RevokePublicationAccess(String)

Удаляет указанное имя входа из списка доступа к публикации (PAL).

(Унаследовано от Publication)
Script(ScriptOptions)

Создает скрипт Transact-SQL, который можно использовать для повторного создания публикации в соответствии с параметрами скрипта.

(Унаследовано от Publication)
SetPeerConflictDetection(Boolean, Int32)

Включает или отключает обнаружение конфликтов для узла в одноранговой топологии.

StartSnapshotGenerationAgentJob()

Запускает задание, создающее исходный моментальный снимок для публикации.

(Унаследовано от Publication)
StopSnapshotGenerationAgentJob()

Пытается остановить выполняемое задание агента моментальных снимков.

(Унаследовано от Publication)
ValidatePublication(ValidationOption, ValidationMethod, Boolean)

Вызывает встроенную проверку публикации для всех подписок.

ValidateSubscriptions(String[], String[], ValidationOption, ValidationMethod, Boolean)

Вызывает встроенную проверку публикации для указанной подписки.

Применяется к

См. также раздел