TransSubscription クラス
トランザクション パブリケーションまたはスナップショット パブリケーションへのプッシュ サブスクリプションを表します。
継承階層
System.Object
Microsoft.SqlServer.Replication.ReplicationObject
Microsoft.SqlServer.Replication.Subscription
Microsoft.SqlServer.Replication.TransSubscription
名前空間: Microsoft.SqlServer.Replication
アセンブリ: Microsoft.SqlServer.Rmo (Microsoft.SqlServer.Rmo.dll)
構文
'宣言
Public NotInheritable Class TransSubscription _
Inherits Subscription
'使用
Dim instance As TransSubscription
public sealed class TransSubscription : Subscription
public ref class TransSubscription sealed : public Subscription
[<SealedAttribute>]
type TransSubscription =
class
inherit Subscription
end
public final class TransSubscription extends Subscription
TransSubscription 型は、以下のメンバーを公開しています。
コンストラクター
名前 | 説明 | |
---|---|---|
TransSubscription() | TransSubscription クラスの新しいインスタンスを作成します。 | |
TransSubscription(String, String, String, String, ServerConnection) | 指定したパブリケーション、データベース、サブスクライバー、サブスクライバー データベース、および、Microsoft SQL Server のインスタンスへの指定した接続を使用して、TransSubscription クラスの新しいインスタンスを作成します。 |
先頭に戻る
プロパティ
名前 | 説明 | |
---|---|---|
AgentJobId | サブスクリプションの同期に使用されるエージェント ジョブの ID を取得します。 (Subscription から継承されています。) | |
AgentOffload | エージェント ジョブの作成時と異なるコンピューター上で同期エージェントを実行するかどうかを取得します。値の設定も可能です。このプロパティは、Microsoft SQL Server 2005 以降を実行しているディストリビューターではサポートされなくなりました。 (Subscription から継承されています。) | |
AgentOffloadServer | リモート エージェントのアクティブ化を使用するとき、エージェントが実行されるリモート コンピューターの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
AgentSchedule | サブスクリプションの同期に使用されるエージェント ジョブのスケジュールを取得します。 (Subscription から継承されています。) | |
BackupInformation | バックアップからサブスクリプションを初期化するために必要な情報を取得します。値の設定も可能です。 | |
CachePropertyChanges | レプリケーション プロパティに加えられた変更をキャッシュするか、またはすぐに適用するかを取得します。値の設定も可能です。 (ReplicationObject から継承されています。) | |
ConnectionContext | Microsoft SQL Server のインスタンスへの接続を取得します。値の設定も可能です。 (ReplicationObject から継承されています。) | |
CreateSyncAgentByDefault | サブスクリプションの同期に使用されるエージェント ジョブが既定で作成されるかどうかを取得します。値の設定も可能です。 (Subscription から継承されています。) | |
DatabaseName | パブリケーション データベースの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
DtsPackageLocation | Microsoft SQL Server 2000 データ変換サービス (DTS) パッケージの場所を取得します。値の設定も可能です。 | |
DtsPackageName | サブスクライバーで適用された Microsoft SQL Server 2000 データ変換サービス (DTS) パッケージの名前を取得します。値の設定も可能です。 | |
DtsPackagePassword | Microsoft SQL Server 2000 データ変換サービス (DTS) パッケージの実行に使用するパスワードを設定します。 | |
EnabledForSynchronizationManager | Microsoft Windows 同期マネージャーを使用してサブスクリプションを同期できるかどうかを指定します。 (Subscription から継承されています。) | |
FullSubscription | インフラストラクチャです。サブスクリプションがいっぱいかどうかを示す値を取得します。 | |
IsExistingObject | サーバーにオブジェクトが存在するかどうかを取得します。 (ReplicationObject から継承されています。) | |
LoopBackDetection | ディストリビューション エージェントがサブスクライバーで発生したトランザクションをサブスクライバーに戻すかどうかを取得します。値の設定も可能です。 | |
Name | 既存のサブスクリプションに割り当てられている名前を取得します。 (Subscription から継承されています。) | |
PublicationName | サブスクリプションがサブスクライブするパブリケーションの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
PublisherName | サブスクリプションが SQL Server 以外のパブリッシャーに属する場合に、パブリッシャーの名前を取得します。値の設定も可能です。 | |
SecureDtsPackagePassword | Microsoft SQL Server 2000 データ変換サービス (DTS) パッケージの実行に使用するパスワードを SecureString オブジェクトとして設定します。 | |
SqlServerName | このオブジェクトの接続先となる Microsoft SQL Server インスタンスの名前を取得します。 (ReplicationObject から継承されています。) | |
Status | サブスクリプションの状態を取得します。 (Subscription から継承されています。) | |
SubscriberCatalog | SQL Server 以外のサブスクライバーの OLE DB プロバイダーに接続する際に使用するカタログを取得します。値の設定も可能です。 | |
SubscriberDatasource | SQL Server 以外のサブスクライバーの OLE DB プロバイダーが理解できるデータ ソースの名前です。 | |
SubscriberDatasourceType | SQL Server 以外のサブスクライバーであるデータ ソースの種類を識別します。 | |
SubscriberLocation | SQL Server 以外のサブスクライバーの OLE DB プロバイダーが理解できるデータベースの場所です。 | |
SubscriberName | サブスクライバーとして動作している Microsoft SQL Server のインスタンスの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
SubscriberProvider | SQL Server 以外のサブスクライバーの OLE DB プロバイダーの登録に使用する一意のプログラム識別子 (PROGID) です。 | |
SubscriberProviderString | SQL Server 以外のサブスクライバーのデータ ソースに接続するのに使用される OLE DB プロバイダー固有の接続文字列です。 | |
SubscriberSecurity | サブスクライバーへの接続に使用されるセキュリティ コンテキストを取得します。 (Subscription から継承されています。) | |
SubscriberType | サブスクライバーでのデータ変更の更新動作を取得します。値の設定も可能です。 | |
SubscriptionDBName | レプリケートされたデータを受信するサブスクライバーのデータベースの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
SubscriptionLSN | サブスクリプションのログ シーケンス番号を取得または設定します。 | |
SubscriptionType | プッシュ サブスクリプションまたはプル サブスクリプションに対して、サブスクリプションを登録するかどうかを取得します。 (Subscription から継承されています。) | |
SynchronizationAgent | サブスクリプションの同期に使用できる TransSynchronizationAgent クラスのインスタンスを取得します。 | |
SynchronizationAgentName | サブスクリプションの同期のために作成されるエージェント ジョブの名前を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
SynchronizationAgentProcessSecurity | Microsoft Windows アカウントを指定する場合に使用されるセキュリティ コンテキストを取得します。このアカウントに基づいて、同期エージェント ジョブが実行され、サブスクリプションが同期されます。 (Subscription から継承されています。) | |
SyncType | サブスクリプションを初期化する方法を取得します。値の設定も可能です。 (Subscription から継承されています。) | |
UserData | ユーザーが独自のデータをオブジェクトにアタッチすることを許可するオブジェクト プロパティを取得します。値の設定も可能です。 (ReplicationObject から継承されています。) |
先頭に戻る
メソッド
名前 | 説明 | |
---|---|---|
CommitPropertyChanges | キャッシュされているすべてのプロパティ変更ステートメントを、Microsoft SQL Server のインスタンスに送信します。 (ReplicationObject から継承されています。) | |
Create | パブリッシャー側でサブスクリプション登録を作成します。 (Subscription から継承されています。) | |
Decouple | 参照先のレプリケーション オブジェクトをサーバーから切断します。 (ReplicationObject から継承されています。) | |
Equals | (Object から継承されています。) | |
GetHashCode | (Object から継承されています。) | |
GetType | (Object から継承されています。) | |
Load | サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。) | |
LoadProperties | サーバーから既存のオブジェクトのプロパティを読み込みます。 (ReplicationObject から継承されています。) | |
Refresh | オブジェクトのプロパティを再度読み込みます。 (ReplicationObject から継承されています。) | |
Reinitialize() | サブスクリプションを同期するために、次回ディストリビューション エージェントを実行するときに再初期化されるようにサブスクリプションをマークします。 | |
Reinitialize(Boolean) | サブスクリプションを再初期化します。 | |
Remove | パブリッシャーでサブスクリプション登録を削除し、プッシュ サブスクリプション用のサブスクライバーでレプリケーション オブジェクトを削除します。 (Subscription から継承されています。) | |
Script | サブスクリプションの作成や削除に使用できる Transact-SQL スクリプトを返します。 (Subscription から継承されています。) | |
StopSynchronizationJob | 現在サブスクリプションの同期を実行しているディストリビューション エージェント ジョブの停止を試みます。 | |
SynchronizeWithJob | エージェント ジョブを開始してサブスクリプションを同期します。 | |
ToString | (Object から継承されています。) |
先頭に戻る
説明
パブリッシャーにリモート ディストリビューターを構成するとき、パラメーターに指定した値は、SynchronizationAgentProcessSecurity も含めてすべてプレーンテキストとしてディストリビューターに送信されます。 Create メソッドを呼び出す前に、パブリッシャーとリモート ディストリビューター間の接続を暗号化する必要があります。 詳細については、「SQL Server への接続の暗号化」を参照してください。
サブスクリプションが SQL Server 以外のパブリッシャーに属している場合、ConnectionContext プロパティはパブリッシャーではなくディストリビューターに設定され、DatabaseName プロパティはパブリケーション データベースではなくディストリビューション データベースに設定され、PublisherName プロパティは SQL Server 以外のパブリッシャーの名前に設定されます。
スレッド セーフ
この型の public static (Microsoft Visual Basic では Shared) のすべてのメンバーは、マルチスレッド操作で安全に使用できます。 インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
使用例
// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksProductTran";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";
string publicationDbName = "AdventureWorks2012";
//Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(subscriberName);
// Create the objects that we need.
TransPublication publication;
TransSubscription subscription;
try
{
// Connect to the Publisher.
conn.Connect();
// Ensure that the publication exists and that
// it supports push subscriptions.
publication = new TransPublication();
publication.Name = publicationName;
publication.DatabaseName = publicationDbName;
publication.ConnectionContext = conn;
if (publication.IsExistingObject)
{
if ((publication.Attributes & PublicationAttributes.AllowPush) == 0)
{
publication.Attributes |= PublicationAttributes.AllowPush;
}
// Define the push subscription.
subscription = new TransSubscription();
subscription.ConnectionContext = conn;
subscription.SubscriberName = subscriberName;
subscription.PublicationName = publicationName;
subscription.DatabaseName = publicationDbName;
subscription.SubscriptionDBName = subscriptionDbName;
// Specify the Windows login credentials for the Distribution Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
subscription.SynchronizationAgentProcessSecurity.Password = winPassword;
// By default, subscriptions to transactional publications are synchronized
// continuously, but in this case we only want to synchronize on demand.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand;
// Create the push subscription.
subscription.Create();
}
else
{
// Do something here if the publication does not exist.
throw new ApplicationException(String.Format(
"The publication '{0}' does not exist on {1}.",
publicationName, publisherName));
}
}
catch (Exception ex)
{
// Implement the appropriate error handling here.
throw new ApplicationException(String.Format(
"The subscription to {0} could not be created.", publicationName), ex);
}
finally
{
conn.Disconnect();
}
' Define the Publisher, publication, and databases.
Dim publicationName As String = "AdvWorksProductTran"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"
Dim publicationDbName As String = "AdventureWorks2012"
'Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(subscriberName)
' Create the objects that we need.
Dim publication As TransPublication
Dim subscription As TransSubscription
Try
' Connect to the Publisher.
conn.Connect()
' Ensure that the publication exists and that
' it supports push subscriptions.
publication = New TransPublication()
publication.Name = publicationName
publication.DatabaseName = publicationDbName
publication.ConnectionContext = conn
If publication.IsExistingObject Then
If (publication.Attributes And PublicationAttributes.AllowPush) = 0 Then
publication.Attributes = publication.Attributes _
Or PublicationAttributes.AllowPush
End If
' Define the push subscription.
subscription = New TransSubscription()
subscription.ConnectionContext = conn
subscription.SubscriberName = subscriberName
subscription.PublicationName = publicationName
subscription.DatabaseName = publicationDbName
subscription.SubscriptionDBName = subscriptionDbName
' Specify the Windows login credentials for the Distribution Agent job.
subscription.SynchronizationAgentProcessSecurity.Login = winLogin
subscription.SynchronizationAgentProcessSecurity.Password = winPassword
' By default, subscriptions to transactional publications are synchronized
' continuously, but in this case we only want to synchronize on demand.
subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.OnDemand
' Create the push subscription.
subscription.Create()
Else
' Do something here if the publication does not exist.
Throw New ApplicationException(String.Format( _
"The publication '{0}' does not exist on {1}.", _
publicationName, publisherName))
End If
Catch ex As Exception
' Implement the appropriate error handling here.
Throw New ApplicationException(String.Format( _
"The subscription to {0} could not be created.", publicationName), ex)
Finally
conn.Disconnect()
End Try
スレッド セーフ
この型の public static (Visual Basic では Shared) のメンバーはすべて、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
関連項目
参照
Microsoft.SqlServer.Replication 名前空間