パブリッシングおよびディストリビューションを構成する方法 (RMO プログラミング)
レプリケーション管理オブジェクト (RMO) を使用することで、プログラムによってレプリケーション パブリッシングおよびディストリビューションを構成できます。
パブリッシングおよびディストリビューションを単一サーバーで構成するには
ServerConnection クラスを使用して、サーバーへの接続を作成します。
ReplicationServer クラスのインスタンスを作成します。手順 1. の ServerConnection を渡します。
DistributionDatabase クラスのインスタンスを作成します。
Name プロパティにデータベース名を設定し、ConnectionContext プロパティに手順 1. の ServerConnection を設定します。
InstallDistributor メソッドを呼び出してディストリビュータをインストールします。手順 3. の DistributionDatabase を渡します。
DistributionPublisher クラスのインスタンスを作成します。
次の DistributionPublisher のプロパティを設定します。
- Name - パブリッシャの名前。
- ConnectionContext - 手順 1. の ServerConnection。
- DistributionDatabase - 手順 5. で作成したデータベースの名前。
- WorkingDirectory - スナップショット ファイルのアクセスに使用する共有。
- PublisherSecurity - パブリッシャへの接続時に使用されるセキュリティ モード。WindowsAuthentication を推奨します。
Create メソッドを呼び出します。
リモート ディストリビュータを使用してパブリッシングおよびディストリビューションを構成するには
ServerConnection クラスを使用して、リモート ディストリビュータ サーバーへの接続を作成します。
ReplicationServer クラスのインスタンスを作成します。手順 1. の ServerConnection を渡します。
DistributionDatabase クラスのインスタンスを作成します。
Name プロパティにデータベース名を設定し、ConnectionContext プロパティに手順 1. の ServerConnection を設定します。
InstallDistributor メソッドを呼び出してディストリビュータをインストールします。安全なパスワード (パブリッシャがリモート ディストリビュータへの接続時に使用) および手順 3. の DistributionDatabase オブジェクトを指定します。詳細については、「ディストリビュータの保護」を参照してください。
セキュリティ メモ : 可能であれば、実行時にセキュリティ資格情報の入力を求めるメッセージを表示します。資格情報を保存する必要がある場合は、Microsoft Windows .NET Framework に用意されている cryptographic services を使用します。 DistributionPublisher クラスのインスタンスを作成します。
次の DistributionPublisher のプロパティを設定します。
- Name - ローカル パブリッシャ サーバーの名前。
- ConnectionContext - 手順 1. の ServerConnection。
- DistributionDatabase - 手順 5. で作成したデータベースの名前。
- WorkingDirectory - スナップショット ファイルのアクセスに使用する共有。
- PublisherSecurity - パブリッシャへの接続時に使用されるセキュリティ モード。WindowsAuthentication を推奨します。
Create メソッドを呼び出します。
ServerConnection クラスを使用して、ローカル パブリッシャ サーバーへの接続を作成します。
ReplicationServer クラスのインスタンスを作成します。手順 9. の ServerConnection を渡します。
InstallDistributor メソッドを呼び出します。リモート ディストリビュータの名前、および手順 5. で指定したリモート ディストリビュータのパスワードを渡します。
セキュリティ メモ : 可能であれば、実行時にセキュリティ資格情報の入力を求めるメッセージを表示します。資格情報を保存する必要がある場合は、Windows .NET Framework に用意されている cryptographic services を使用します。
使用例
次の例では、ローカル ディストリビュータを持つパブリッシャとしてサーバーを構成します。
// Set the server and database names
string distributionDbName = "distribution";
string publisherName = publisherInstance;
string publicationDbName = "AdventureWorks";
DistributionDatabase distributionDb;
ReplicationServer distributor;
DistributionPublisher publisher;
ReplicationDatabase publicationDb;
// Create a connection to the server using Windows Authentication.
ServerConnection conn = new ServerConnection(publisherName);
try
{
// Connect to the server acting as the Distributor
// and local Publisher.
conn.Connect();
// Define the distribution database at the Distributor,
// but do not create it now.
distributionDb = new DistributionDatabase(distributionDbName, conn);
distributionDb.MaxDistributionRetention = 96;
distributionDb.HistoryRetention = 120;
// Set the Distributor properties and install the Distributor.
// This also creates the specified distribution database.
distributor = new ReplicationServer(conn);
distributor.InstallDistributor((string)null, distributionDb);
// Set the Publisher properties and install the Publisher.
publisher = new DistributionPublisher(publisherName, conn);
publisher.DistributionDatabase = distributionDb.Name;
publisher.WorkingDirectory = @"\\" + publisherName + @"\repldata";
publisher.PublisherSecurity.WindowsAuthentication = true;
publisher.Create();
// Enable AdventureWorks as a publication database.
publicationDb = new ReplicationDatabase(publicationDbName, conn);
publicationDb.EnabledTransPublishing = true;
publicationDb.EnabledMergePublishing = true;
}
catch (Exception ex)
{
// Implement appropriate error handling here.
throw new ApplicationException("An error occured when installing distribution and publishing.", ex);
}
finally
{
conn.Disconnect();
}
' Set the server and database names
Dim distributionDbName As String = "distribution"
Dim publisherName As String = publisherInstance
Dim publicationDbName As String = "AdventureWorks"
Dim distributionDb As DistributionDatabase
Dim distributor As ReplicationServer
Dim publisher As DistributionPublisher
Dim publicationDb As ReplicationDatabase
' Create a connection to the server using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(publisherName)
Try
' Connect to the server acting as the Distributor
' and local Publisher.
conn.Connect()
' Define the distribution database at the Distributor,
' but do not create it now.
distributionDb = New DistributionDatabase(distributionDbName, conn)
distributionDb.MaxDistributionRetention = 96
distributionDb.HistoryRetention = 120
' Set the Distributor properties and install the Distributor.
' This also creates the specified distribution database.
distributor = New ReplicationServer(conn)
distributor.InstallDistributor((CType(Nothing, String)), distributionDb)
' Set the Publisher properties and install the Publisher.
publisher = New DistributionPublisher(publisherName, conn)
publisher.DistributionDatabase = distributionDb.Name
publisher.WorkingDirectory = "\\" + publisherName + "\repldata"
publisher.PublisherSecurity.WindowsAuthentication = True
publisher.Create()
' Enable AdventureWorks as a publication database.
publicationDb = New ReplicationDatabase(publicationDbName, conn)
publicationDb.EnabledTransPublishing = True
publicationDb.EnabledMergePublishing = True
Catch ex As Exception
' Implement appropriate error handling here.
Throw New ApplicationException("An error occured when installing distribution and publishing.", ex)
Finally
conn.Disconnect()
End Try
参照
処理手順
パブリッシングとディストリビューションを構成する方法 (レプリケーション Transact-SQL プログラミング)