SnapshotGenerationAgent Class

Provides the functionality of the Replication Snapshot Agent.

Inheritance Hierarchy

System.Object
  System.MarshalByRefObject
    Microsoft.SqlServer.Replication.AgentCore
      Microsoft.SqlServer.Replication.SnapshotGenerationAgent

Namespace:  Microsoft.SqlServer.Replication
Assembly:  Microsoft.SqlServer.Replication (in Microsoft.SqlServer.Replication.dll)

Syntax

'Declaration
<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)> _
<GuidAttribute("141945FD-18BD-4222-B6D9-F937704C7FFE")> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class SnapshotGenerationAgent _
    Inherits AgentCore _
    Implements ISnapshotGenerationAgent
'Usage
Dim instance As SnapshotGenerationAgent
[ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)]
[GuidAttribute("141945FD-18BD-4222-B6D9-F937704C7FFE")]
[ComVisibleAttribute(true)]
public sealed class SnapshotGenerationAgent : AgentCore, 
    ISnapshotGenerationAgent
[ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
[GuidAttribute(L"141945FD-18BD-4222-B6D9-F937704C7FFE")]
[ComVisibleAttribute(true)]
public ref class SnapshotGenerationAgent sealed : public AgentCore, 
    ISnapshotGenerationAgent
[<SealedAttribute>]
[<ClassInterfaceAttribute(ClassInterfaceType.AutoDispatch)>]
[<GuidAttribute("141945FD-18BD-4222-B6D9-F937704C7FFE")>]
[<ComVisibleAttribute(true)>]
type SnapshotGenerationAgent =  
    class
        inherit AgentCore
        interface ISnapshotGenerationAgent
    end
public final class SnapshotGenerationAgent extends AgentCore implements ISnapshotGenerationAgent

The SnapshotGenerationAgent type exposes the following members.

Constructors

  Name Description
Public method SnapshotGenerationAgent Creates an instance of the SnapshotGenerationAgent class.

Top

Properties

  Name Description
Public property AbortPolicy Gets or sets how running replication agent threads are terminated when an unanticipated shutdown occurs. (Inherited from AgentCore.)
Public property BcpBatchSize Gets or set the number of rows to send to the Distributor in a bulk copy operation.
Public property ComErrorCollection Returns information on errors that occur during agent execution. (Inherited from AgentCore.)
Public property Distributor Gets or sets the name of the instance of SQL Server acting as the Distributor for the publication.
Public property DistributorDeadlockPriority Gets or sets the priority of the Snapshot Agent connection to the Distributor when a deadlock occurs.
Public property DistributorEncryptedPassword Infrastructure.
Public property DistributorEncryptionLevel Gets of sets the level of Secure Sockets Layer (SSL) encryption used by the Snapshot Agent when connecting to the Distributor.
Public property DistributorLogin Gets or sets the login name used when connecting locally to the Distributor using SQL Server Authentication.
Public property DistributorNetworkLibrary Infrastructure.
Public property DistributorPassword Sets the password used when connecting locally to the Distributor using SQL Server Authentication.
Public property DistributorSecurityMode Gets or sets the security mode used when connecting locally to the Distributor.
Public property DynamicFilterHostName Gets or sets the value supplied to the HOST_NAME function used in a parameterized row filter.
Public property DynamicFilterLogin Gets or sets the value supplied to the SUSER_SNAME function used in a parameterized row filter.
Public property DynamicSnapshotLocation Gets or sets the location of the partitioned snapshot for a subscription to a merge publication that is defined based-on a parameterized row filter.
Public property FieldDelimiter Gets or sets the character or character sequence that marks the end of a field in the SQL Server bulk-copy data file.
Public property FlatExceptionCollection Infrastructure. (Inherited from AgentCore.)
Public property HistoryVerboseLevel Gets or sets the amount of history logged during agent execution. (Inherited from AgentCore.)
Public property HRBcpBlocks Infrastructure.
Public property HRBcpBlockSize Infrastructure.
Public property HRBcpDynamicBlocks Infrastructure.
Public property LoginTimeout Get or sets the number of seconds before the login times out for connections made by the agent. (Inherited from AgentCore.)
Public property MaxBcpThreads Gets or sets the number of bulk copy operations that can be performed in parallel.
Public property MaxNetworkOptimization Gets or sets whether out-of-partition deletes are sent to the Subscriber.
Public property OnetimeDynamicSnapshot Infrastructure.
Public property Output Get or sets the name and path of the agent output file. (Inherited from AgentCore.)
Public property OutputVerboseLevel Gets or sets the level of detail of information written to the agent output file. (Inherited from AgentCore.)
Public property PacketSize Infrastructure. (Inherited from AgentCore.)
Public property ProfileName Gets or sets an agent profile to use when running the agent. (Inherited from AgentCore.)
Public property Publication Gets or sets the name of the publication.
Public property Publisher Gets or sets the name of the instance of SQL Server that is the Publisher.
Public property PublisherDatabase Gets or sets the name of the publication database.
Public property PublisherDeadlockPriority Gets or sets the priority of the Snapshot Agent connection to the Publisher when a deadlock occurs.
Public property PublisherEncryptedPassword Infrastructure.
Public property PublisherEncryptionLevel Gets of sets the level of Secure Sockets Layer (SSL) encryption used by the Snapshot Agent when connecting to the Distributor.
Public property PublisherFailoverPartner Gets or sets the failover partner instance of SQL Server participating in a database mirroring session with the publication database. (Inherited from AgentCore.)
Public property PublisherLogin Gets or sets the login name used when connecting to the Publisher using SQL Server Authentication.
Public property PublisherNetworkLibrary Infrastructure.
Public property PublisherPassword Sets the password used when connecting to the Publisher using SQL Server Authentication.
Public property PublisherSecurityMode Gets or sets the security mode used when connecting to the Publisher.
Public property QueryTimeout Get or sets the number of seconds before a query times out. (Inherited from AgentCore.)
Public property ReplicationType Gets or sets the type of publication.
Public property RowDelimiter Gets or sets the character or character sequence that marks the end of a row in the SQL Server bulk-copy data file.
Public property SecureDistributorEncryptedPassword Infrastructure.
Public property SecureDistributorPassword Sets the password (as a SecureString object) used when connecting locally to the Distributor using SQL Server Authentication.
Public property SecurePublisherEncryptedPassword Infrastructure.
Public property SecurePublisherPassword Sets the password (as a SecureString object) used when connecting to the Publisher using SQL Server Authentication.
Public property StartQueueTimeout Gets or sets the time that the Snapshot Agent waits when the maximum number of concurrent partitioned snapshot processes for a merge publication are already running.
Public property Supports70Subscribers Gets or sets whether the generated snapshot supports SQL Server 7.0 Subscribers.

Top

Methods

  Name Description
Public method Abort (Inherited from AgentCore.)
Public method CreateObjRef (Inherited from MarshalByRefObject.)
Public method Equals (Inherited from Object.)
Protected method Finalize (Inherited from Object.)
Public method GenerateSnapshot Starts the Snapshot Agent to generate the snapshot.
Public method GetHashCode (Inherited from Object.)
Public method GetLifetimeService (Inherited from MarshalByRefObject.)
Public method GetType (Inherited from Object.)
Public method InitializeLifetimeService (Inherited from MarshalByRefObject.)
Protected method MemberwiseClone() (Inherited from Object.)
Protected method MemberwiseClone(Boolean) (Inherited from MarshalByRefObject.)
Public method ResetParametersToDefault (Inherited from AgentCore.)
Public method ToString (Inherited from Object.)

Top

Events

  Name Description
Public event ComStatus (Inherited from AgentCore.)
Public event Status Occurs when a running agent returns status information. (Inherited from AgentCore.)

Top

Explicit Interface Implementations

  Name Description
Explicit interface implemetationPrivate method ISnapshotGenerationAgent.ResetParametersToDefault

Top

Remarks

The SnapshotGenerationAgent class provides direct, programmatic access to the Snapshot Agent.

The SnapshotGenerationAgent class supports the ability to do the following replication tasks:

  • Generate the initial snapshot

  • Generate a partitioned snapshot for a subscription defined based-on a parameterized filter.

Examples

This example generates a standard snapshot for a transactional publication.

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

            SnapshotGenerationAgent agent;

            try
            {
                // Set the required properties for Snapshot Agent.
                agent = new SnapshotGenerationAgent();
                agent.Distributor = distributorName;
                agent.DistributorSecurityMode = SecurityMode.Integrated;
                agent.Publisher = publisherName;
                agent.PublisherSecurityMode = SecurityMode.Integrated;
                agent.Publication = publicationName;
                agent.PublisherDatabase = publicationDbName;
                agent.ReplicationType = ReplicationType.Transactional;

                // Start the agent synchronously.
                agent.GenerateSnapshot();

            }
            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "A snapshot could not be generated for the {0} publication."
                    , publicationName), ex);
            }
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance

Dim agent As SnapshotGenerationAgent

Try
    ' Set the required properties for Snapshot Agent.
    agent = New SnapshotGenerationAgent()
    agent.Distributor = distributorName
    agent.DistributorSecurityMode = SecurityMode.Integrated
    agent.Publisher = publisherName
    agent.PublisherSecurityMode = SecurityMode.Integrated
    agent.Publication = publicationName
    agent.PublisherDatabase = publicationDbName
    agent.ReplicationType = ReplicationType.Transactional

    ' Start the agent synchronously.
    agent.GenerateSnapshot()

Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
End Try

This example generates a standard snapshot for a merge publication.

// Set the Publisher, publication database, and publication names.
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2008R2";
string publisherName = publisherInstance;
string distributorName = publisherInstance;

SnapshotGenerationAgent agent;

try
{
    // Set the required properties for Snapshot Agent.
    agent = new SnapshotGenerationAgent();
    agent.Distributor = distributorName;
    agent.DistributorSecurityMode = SecurityMode.Integrated;
    agent.Publisher = publisherName;
    agent.PublisherSecurityMode = SecurityMode.Integrated;
    agent.Publication = publicationName;
    agent.PublisherDatabase = publicationDbName;
    agent.ReplicationType = ReplicationType.Merge;

    // Start the agent synchronously.
    agent.GenerateSnapshot();

}
catch (Exception ex)
{
    // Implement custom application error handling here.
    throw new ApplicationException(String.Format(
        "A snapshot could not be generated for the {0} publication."
        , publicationName), ex);
}
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance

Dim agent As SnapshotGenerationAgent

Try
    ' Set the required properties for Snapshot Agent.
    agent = New SnapshotGenerationAgent()
    agent.Distributor = distributorName
    agent.DistributorSecurityMode = SecurityMode.Integrated
    agent.Publisher = publisherName
    agent.PublisherSecurityMode = SecurityMode.Integrated
    agent.Publication = publicationName
    agent.PublisherDatabase = publicationDbName
    agent.ReplicationType = ReplicationType.Merge

    ' Start the agent synchronously.
    agent.GenerateSnapshot()

Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
End Try

This example overloads the HOST_NAME function to generate a filtered data snapshot for a subscription to a merge publication that has a parameterized filter.

           // Set the Publisher, publication database, and publication names.
            string publicationName = "AdvWorksSalesOrdersMerge";
            string publicationDbName = "AdventureWorks2008R2";
            string publisherName = publisherInstance;
            string distributorName = publisherInstance;

            SnapshotGenerationAgent agent;

            try
            {
                // Set the required properties for Snapshot Agent.
                agent = new SnapshotGenerationAgent();
                agent.Distributor = distributorName;
                agent.DistributorSecurityMode = SecurityMode.Integrated;
                agent.Publisher = publisherName;
                agent.PublisherSecurityMode = SecurityMode.Integrated;
                agent.Publication = publicationName;
                agent.PublisherDatabase = publicationDbName;
                agent.ReplicationType = ReplicationType.Merge;

                // Specify the partition information to generate a 
                // filtered snapshot based on Hostname.
                agent.DynamicFilterHostName = hostname;

                // Start the agent synchronously.
                agent.GenerateSnapshot();
            }
            catch (Exception ex)
            {
                // Implement custom application error handling here.
                throw new ApplicationException(String.Format(
                    "A snapshot could not be generated for the {0} publication."
                    , publicationName), ex);
            }
' Set the Publisher, publication database, and publication names.
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2008R2"
Dim publisherName As String = publisherInstance
Dim distributorName As String = publisherInstance

Dim agent As SnapshotGenerationAgent

Try
    ' Set the required properties for Snapshot Agent.
    agent = New SnapshotGenerationAgent()
    agent.Distributor = distributorName
    agent.DistributorSecurityMode = SecurityMode.Integrated
    agent.Publisher = publisherName
    agent.PublisherSecurityMode = SecurityMode.Integrated
    agent.Publication = publicationName
    agent.PublisherDatabase = publicationDbName
    agent.ReplicationType = ReplicationType.Merge

    ' Specify the partition information to generate a 
    ' filtered snapshot based on Hostname.
    agent.DynamicFilterHostName = hostname

    ' Start the agent synchronously.
    agent.GenerateSnapshot()
Catch ex As Exception
    ' Implement custom application error handling here.
    Throw New ApplicationException(String.Format( _
     "A snapshot could not be generated for the {0} publication." _
     , publicationName), ex)
End Try

Thread Safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.