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, Boolean)

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

TransPublication(String, String, ServerConnection)

Создаёт новый экземпляр 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

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

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

Получает или устанавливает порт серверного компьютера File Transfer Protocol (FTP) для публикаций, позволяющих инициализацию подписки через FTP.

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

Получает или устанавливает подкаталог на серверном компьютере File Transfer Protocol (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 Publisher.

QueueType

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

ReplicateDdl

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

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

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

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

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

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

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

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

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

SnapshotGenerationAgentProcessSecurity

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

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

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

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

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

(Унаследовано от 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)

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

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

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

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

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

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

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

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

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

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

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

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

Запускает внутреннее обновление после репликации.

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

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

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

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

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

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

MakePullSubscriptionWellKnown(String, String, SubscriptionSyncType, TransSubscriberType)

Оформляет pull подписку в Publisher.

PostTracerToken()

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

Refresh()

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

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

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

ReinitializeAllSubscriptions()

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

ReinitializeAllSubscriptions(Boolean)

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

Remove()

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

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

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

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

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

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)

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

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

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