Bagikan melalui


Membuat Langganan push

Berlaku untuk:SQL ServerAzure SQL Database

Topik ini menjelaskan cara membuat langganan push di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau Replication Management Objects (RMO). Untuk informasi tentang membuat langganan push untuk Pelanggan non-SQL Server, lihat Membuat langganan untuk Pelanggan non-SQL Server.

Catatan

Azure SQL Managed Instance dapat menjadi penerbit, distributor, dan pelanggan untuk rekam jepret dan replikasi transaksional. Database di Azure SQL Database hanya dapat menjadi pelanggan pendorongan untuk rekam jepret dan replikasi transaksional. Untuk informasi selengkapnya, lihat Replikasi transaksional dengan Azure SQL Database dan Azure SQL Managed Instance.

Menggunakan SQL Server Management Studio

Buat langganan push di Penerbit atau Pelanggan dengan menggunakan Wizard Langganan Baru. Ikuti halaman dalam wizard untuk:

  • Tentukan Penerbit dan publikasi.

  • Pilih tempat agen replikasi akan berjalan. Untuk langganan pendorongan, pilih Jalankan semua agen di Distributor (langganan push) di halaman Lokasi Agen Distribusi atau halaman Lokasi Agen Penggabungan, tergantung pada jenis publikasi.

  • Tentukan Pelanggan dan database langganan.

  • Tentukan login dan kata sandi yang digunakan untuk koneksi yang dibuat oleh agen replikasi:

    • Agar langganan rekam jepret dan publikasi transaksional, tentukan kredensial di halaman Keamanan Agen Distribusi.

    • Agar langganan dapat menggabungkan publikasi, tentukan kredensial di halaman Gabungkan Keamanan Agen.

      Untuk informasi tentang izin yang diperlukan setiap agen, lihat Model keamanan agen replikasi.

  • Tentukan jadwal sinkronisasi dan kapan Pelanggan harus diinisialisasi.

  • Tentukan opsi tambahan untuk publikasi gabungan: jenis langganan dan nilai untuk pemfilteran berparameter.

  • Tentukan opsi tambahan untuk publikasi transaksional yang memungkinkan pembaruan langganan. Salah satu opsinya adalah memutuskan apakah Pelanggan harus segera melakukan perubahan di Penerbit atau menulisnya ke antrean. Opsi lain adalah menyiapkan kredensial yang digunakan untuk menyambungkan dari Pelanggan ke Penerbit.

  • Secara opsional, skrip langganan.

Untuk membuat langganan push dari Publisher

  1. Koneksi ke Publisher di Microsoft SQL Server Management Studio, lalu perluas simpul server.

  2. Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.

  3. Klik kanan publikasi yang ingin Anda buatkan satu atau beberapa langganan, lalu pilih Langganan Baru.

  4. Selesaikan halaman di Panduan Langganan Baru.

Untuk membuat langganan push dari Pelanggan

  1. Koneksi ke Pelanggan di SQL Server Management Studio, lalu perluas simpul server.

  2. Perluas folder Replikasi.

  3. Klik kanan folder Langganan Lokal, lalu pilih Langganan Baru.

  4. Pada halaman Publikasi Wizard Langganan Baru, pilih <Temukan Penerbit> SQL Server atau <Temukan Penerbit> Oracle dari daftar drop-down Penerbit.

  5. Koneksi ke Publisher dalam kotak dialog Koneksi ke Server.

  6. Pilih publikasi di halaman Publikasi .

  7. Selesaikan halaman di Panduan Langganan Baru.

Menggunakan T-SQL

Anda dapat membuat langganan push secara terprogram dengan menggunakan prosedur tersimpan replikasi. Prosedur tersimpan yang digunakan akan bergantung pada jenis publikasi tempat langganan berada.

Penting

Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, Anda harus mengamankan file untuk mencegah akses yang tidak sah.

Untuk membuat langganan push ke rekam jepret atau publikasi transaksi

  1. Di Publisher pada database publikasi, verifikasi bahwa publikasi mendukung langganan push dengan menjalankan sp_helppublication.

    • Jika nilai allow_push adalah 1, langganan push didukung.

    • Jika nilai allow_push adalah 0, jalankan sp_changepublication. Tentukan allow_push untuk @property dan true untuk @value.

  2. Di Publisher pada database publikasi, jalankan sp_addsubscription. Tentukan @publication, @subscriber, dan @destination_db. Tentukan nilai dorongan untuk @subscription_type. Untuk informasi tentang cara memperbarui langganan, lihat Membuat langganan yang dapat diperbarui ke publikasi transaksi.

  3. Di Publisher pada database publikasi, jalankan sp_addpushsubscription_agent. Tentukan yang berikut ini:

    • Parameter @subscriber, @subscriber_db, dan @publication .

    • Kredensial Microsoft Windows tempat Agen Distribusi di Distributor berjalan untuk @job_login dan @job_password.

      Catatan

      Koneksi yang dibuat melalui Autentikasi Terintegrasi Windows selalu menggunakan kredensial Windows yang ditentukan oleh @job_login dan @job_password. Agen Distribusi selalu membuat koneksi lokal ke Distributor dengan menggunakan Autentikasi Terintegrasi Windows. Secara default, agen akan terhubung ke Pelanggan dengan menggunakan Autentikasi Terintegrasi Windows.

    • (Opsional) Nilai 0 untuk @subscriber_security_mode dan informasi masuk Microsoft SQL Server untuk @subscriber_login dan @subscriber_password. Tentukan parameter ini jika Anda perlu menggunakan Autentikasi SQL Server saat menyambungkan ke Pelanggan.

    • Jadwal untuk pekerjaan Agen Distribusi untuk langganan ini. Untuk informasi selengkapnya, lihat Menentukan jadwal sinkronisasi.

Penting

Saat Anda membuat langganan push di Publisher dengan Distributor jarak jauh, nilai yang disediakan untuk semua parameter, termasuk job_login dan job_password, dikirim ke Distributor sebagai teks biasa. Anda harus mengenkripsi koneksi antara Publisher dan Distributor jarak jauh sebelum menjalankan prosedur tersimpan ini. Untuk informasi selengkapnya, lihat Mengaktifkan koneksi terenkripsi ke mesin database (Pengelola Konfigurasi SQL Server).

Untuk membuat langganan pendorongan ke publikasi gabungan

  1. Di Publisher pada database publikasi, verifikasi bahwa publikasi mendukung langganan push dengan menjalankan sp_helpmergepublication.

    • Jika nilai allow_push adalah 1, publikasi mendukung langganan push.

    • Jika nilai allow_push bukan 1, jalankan sp_changemergepublication. Tentukan allow_push untuk @property dan true untuk @value.

  2. Di Publisher pada database publikasi, jalankan sp_addmergesubscription. Tentukan parameter berikut:

    • @publication. Ini adalah nama publikasi.

    • @subscriber_type. Untuk langganan klien, tentukan lokal. Untuk langganan server, tentukan global.

    • @subscription_priority. Untuk langganan server, tentukan prioritas untuk langganan (0,00 hingga 99,99).

    Untuk informasi selengkapnya, lihat Deteksi dan resolusi konflik replikasi gabungan tingkat lanjut.

  3. Di Publisher pada database publikasi, jalankan sp_addmergepushsubscription_agent. Tentukan yang berikut ini:

    • Parameter @subscriber, @subscriber_db, dan @publication .

    • Kredensial Windows tempat Agen Penggabungan di Distributor berjalan untuk @job_login dan @job_password.

      Catatan

      Koneksi yang dibuat melalui Autentikasi Terintegrasi Windows selalu menggunakan kredensial Windows yang ditentukan oleh @job_login dan @job_password. Agen Penggabungan selalu membuat koneksi lokal ke Distributor dengan menggunakan Autentikasi Terintegrasi Windows. Secara default, agen akan terhubung ke Pelanggan dengan menggunakan Autentikasi Terintegrasi Windows.

    • (Opsional) Nilai 0 untuk @subscriber_security_mode dan informasi masuk SQL Server untuk @subscriber_login dan @subscriber_password. Tentukan parameter ini jika Anda perlu menggunakan Autentikasi SQL Server saat menyambungkan ke Pelanggan.

    • (Opsional) Nilai 0 untuk @publisher_security_mode dan informasi login SQL Server untuk @publisher_login dan @publisher_password. Tentukan nilai-nilai ini jika Anda perlu menggunakan Autentikasi SQL Server saat menyambungkan ke Publisher.

    • Jadwal untuk pekerjaan Agen Penggabungan untuk langganan ini. Untuk informasi selengkapnya, lihat Menentukan jadwal sinkronisasi.

Penting

Saat Anda membuat langganan push di Publisher dengan Distributor jarak jauh, nilai yang disediakan untuk semua parameter, termasuk job_login dan job_password, dikirim ke Distributor sebagai teks biasa. Anda harus mengenkripsi koneksi antara Publisher dan Distributor jarak jauh sebelum menjalankan prosedur tersimpan ini. Untuk informasi selengkapnya, lihat Mengaktifkan koneksi terenkripsi ke mesin database (Pengelola Konfigurasi SQL Server).

Contoh (Transact-SQL)

Contoh berikut membuat langganan push ke publikasi transaksi. Nilai login dan kata sandi disediakan saat runtime melalui variabel pembuatan skrip sqlcmd .

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'AdvWorksProductTran';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorks2022Replica';

--Add a push subscription to a transactional publication.
USE [AdventureWorks2022]
EXEC sp_addsubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @destination_db = @subscriptionDB, 
  @subscription_type = N'push';

--Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Contoh berikut membuat langganan pendorongan ke publikasi gabungan. Nilai login dan kata sandi disediakan saat runtime melalui variabel pembuatan skrip sqlcmd .

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @hostname AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @subscriber = $(SubServer);
SET @subscriptionDB = N'AdventureWorksReplica'; 
SET @hostname = N'adventure-works\david8'

-- Add a push subscription to a merge publication.
USE [AdventureWorks2022];
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @hostname = @hostname;

--Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @job_login = $(Login), 
  @job_password = $(Password);
GO

Menggunakan Objek Manajemen Replikasi

Anda dapat membuat langganan push secara terprogram dengan menggunakan Objek Manajemen Replikasi (RMO). Kelas RMO yang Anda gunakan untuk membuat langganan push bergantung pada jenis publikasi tempat langganan dibuat.

Penting

Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial, gunakan layanan kriptografi yang disediakan Microsoft Windows .NET Framework.

Untuk membuat langganan push ke rekam jepret atau publikasi transaksi

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Buat instans TransPublication kelas dengan menggunakan koneksi Publisher dari langkah 1. Tentukan Name, DatabaseName, dan ConnectionContext.

  3. Panggil LoadProperties metode. Jika metode ini mengembalikan false, properti yang ditentukan di langkah 2 salah atau publikasi tidak ada di server.

  4. Lakukan bitwise logis AND (& di Visual C# dan Dan di Visual Basic) antara Attributes properti dan AllowPush. Jika hasilnya adalah None, atur Attributes ke hasil bitwise logis OR (| di Visual C# dan Atau di Visual Basic) antara Attributes dan AllowPush. Kemudian, panggil CommitPropertyChanges untuk mengaktifkan langganan push.

  5. Jika database langganan tidak ada, buat dengan menggunakan Database kelas . Untuk informasi selengkapnya, lihat Membuat, mengubah, dan menghapus database.

  6. Membuat instans kelas TransSubscription.

  7. Atur properti langganan berikut ini:

  8. Panggil Create metode.

Penting

Saat Anda membuat langganan push di Publisher dengan Distributor jarak jauh, nilai yang disediakan untuk semua properti, termasuk SynchronizationAgentProcessSecurity, dikirim ke Distributor sebagai teks biasa. Anda harus mengenkripsi koneksi antara Publisher dan Distributor jarak jauhnya sebelum memanggil Create metode . Untuk informasi selengkapnya, lihat Mengaktifkan koneksi terenkripsi ke mesin database (Pengelola Konfigurasi SQL Server).

Untuk membuat langganan pendorongan ke publikasi gabungan

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Buat instans MergePublication kelas dengan menggunakan koneksi Publisher dari langkah 1. Tentukan Name, DatabaseName, dan ConnectionContext.

  3. Panggil LoadProperties metode. Jika metode ini mengembalikan false, properti yang ditentukan di langkah 2 salah atau publikasi tidak ada di server.

  4. Lakukan bitwise logis AND (& di Visual C# dan Dan di Visual Basic) antara Attributes properti dan AllowPush. Jika hasilnya adalah None, atur Attributes ke hasil bitwise logis OR (| di Visual C# dan Atau di Visual Basic) antara Attributes dan AllowPush. Kemudian, panggil CommitPropertyChanges untuk mengaktifkan langganan push.

  5. Jika database langganan tidak ada, buat dengan menggunakan Database kelas . Untuk informasi selengkapnya, lihat Membuat, mengubah, dan menghapus database.

  6. Membuat instans kelas MergeSubscription.

  7. Atur properti langganan berikut ini:

  8. Panggil Create metode.

Penting

Saat Anda membuat langganan push di Publisher dengan Distributor jarak jauh, nilai yang disediakan untuk semua properti, termasuk SynchronizationAgentProcessSecurity, dikirim ke Distributor sebagai teks biasa. Anda harus mengenkripsi koneksi antara Publisher dan Distributor jarak jauhnya sebelum memanggil Create metode . Untuk informasi selengkapnya, lihat Mengaktifkan koneksi terenkripsi ke mesin database (Pengelola Konfigurasi SQL Server).

Contoh (RMO)

Contoh ini membuat langganan push baru ke publikasi transaksi. Kredensial akun Windows yang Anda gunakan untuk menjalankan pekerjaan Agen Distribusi diteruskan saat runtime.

           // Define the Publisher, publication, and databases.
           string publicationName = "AdvWorksProductTran";
           string publisherName = publisherInstance;
           string subscriberName = subscriberInstance;
           string subscriptionDbName = "AdventureWorks2022Replica";
           string publicationDbName = "AdventureWorks2022";

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

           // 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 = "AdventureWorks2022Replica"
Dim publicationDbName As String = "AdventureWorks2022"

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

' 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

Contoh ini membuat langganan push baru ke publikasi gabungan. Kredensial akun Windows yang Anda gunakan untuk menjalankan pekerjaan Agen Penggabungan diteruskan saat runtime.

// Define the Publisher, publication, and databases.
string publicationName = "AdvWorksSalesOrdersMerge";
string publisherName = publisherInstance;
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2022Replica";
string publicationDbName = "AdventureWorks2022";
string hostname = @"adventure-works\garrett1";

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

// Create the objects that we need.
MergePublication publication;
MergeSubscription subscription;

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

    // Ensure that the publication exists and that 
    // it supports push subscriptions.
    publication = new MergePublication();
    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 MergeSubscription();
        subscription.ConnectionContext = conn;
        subscription.SubscriberName = subscriberName;
        subscription.PublicationName = publicationName;
        subscription.DatabaseName = publicationDbName;
        subscription.SubscriptionDBName = subscriptionDbName;
        subscription.HostName = hostname;

        // Set a schedule to synchronize the subscription every 2 hours
        // during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly;
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32(0x003E);
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1;
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour;
        subscription.AgentSchedule.FrequencySubDayInterval = 2;
        subscription.AgentSchedule.ActiveStartDate = 20051108;
        subscription.AgentSchedule.ActiveEndDate = 20071231;
        subscription.AgentSchedule.ActiveStartTime = 060000;
        subscription.AgentSchedule.ActiveEndTime = 100000;

        // Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin;
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword;

        // 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 = "AdvWorksSalesOrdersMerge"
Dim publisherName As String = publisherInstance
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2022Replica"
Dim publicationDbName As String = "AdventureWorks2022"
Dim hostname As String = "adventure-works\garrett1"

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

' Create the objects that we need.
Dim publication As MergePublication
Dim subscription As MergeSubscription

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

    ' Ensure that the publication exists and that 
    ' it supports push subscriptions.
    publication = New MergePublication()
    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 MergeSubscription()
        subscription.ConnectionContext = conn
        subscription.SubscriberName = subscriberName
        subscription.PublicationName = publicationName
        subscription.DatabaseName = publicationDbName
        subscription.SubscriptionDBName = subscriptionDbName
        subscription.HostName = hostname

        ' Set a schedule to synchronize the subscription every 2 hours
        ' during weekdays from 6am to 10pm.
        subscription.AgentSchedule.FrequencyType = ScheduleFrequencyType.Weekly
        subscription.AgentSchedule.FrequencyInterval = Convert.ToInt32("0x003E", 16)
        subscription.AgentSchedule.FrequencyRecurrenceFactor = 1
        subscription.AgentSchedule.FrequencySubDay = ScheduleFrequencySubDay.Hour
        subscription.AgentSchedule.FrequencySubDayInterval = 2
        subscription.AgentSchedule.ActiveStartDate = 20051108
        subscription.AgentSchedule.ActiveEndDate = 20071231
        subscription.AgentSchedule.ActiveStartTime = 60000
        subscription.AgentSchedule.ActiveEndTime = 100000

        ' Specify the Windows login credentials for the Merge Agent job.
        subscription.SynchronizationAgentProcessSecurity.Login = winLogin
        subscription.SynchronizationAgentProcessSecurity.Password = winPassword

        ' 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

Baca juga

Menampilkan dan mengubah properti langganan push
Praktik terbaik keamanan replikasi
Membuat publikasi
Konsep objek manajemen replikasi
Menyinkronkan langganan push
Berlangganan publikasi
Menggunakan sqlcmd dengan variabel pembuatan skrip