Menerapkan Pemberitahuan Peristiwa

Berlaku untuk:SQL Server

Untuk menerapkan pemberitahuan peristiwa, Anda harus terlebih dahulu membuat layanan target untuk menerima pemberitahuan peristiwa, lalu membuat pemberitahuan peristiwa.

Penting

Keamanan dialog Service Broker harus dikonfigurasi untuk pemberitahuan peristiwa yang mengirim pesan ke broker layanan di server jarak jauh. Keamanan dialog harus dikonfigurasi secara manual sesuai dengan model keamanan penuh.

Membuat Layanan Target

Anda tidak perlu membuat layanan yang memulai Service Broker karena Service Broker mencakup jenis pesan dan kontrak tertentu berikut untuk pemberitahuan peristiwa:

https://schemas.microsoft.com/SQL/Notifications/PostEventNotification  

Layanan target yang menerima pemberitahuan peristiwa harus mematuhi kontrak yang sudah ada sebelumnya ini.

Untuk membuat layanan target:

  1. Buat antrean untuk menerima pesan.

    Catatan

    Antrean menerima jenis pesan berikut: http://schemas.microsoft.com/SQL/Notifications/QueryNotification.

  2. Buat layanan pada antrean yang mereferensikan kontrak pemberitahuan peristiwa.

  3. Buat rute pada layanan untuk menentukan alamat tempat Service Broker mengirim pesan untuk layanan. Untuk pemberitahuan peristiwa yang menargetkan layanan dalam database yang sama, tentukan ADDRESS = 'LOCAL'.

    Catatan

    Perutean Service Broker menentukan layanan yang menerima pesan pemberitahuan. Jika pemberitahuan peristiwa menargetkan layanan di server jarak jauh, server sumber dan server target harus memiliki rute yang ditentukan untuk memastikan bahwa komunikasi dua arah terjadi.

Contoh berikut membuat antrean, layanan pada antrean, dan rute pada layanan untuk menangani pesan dari kontrak pemberitahuan peristiwa.

CREATE QUEUE NotifyQueue ;  
GO  
CREATE SERVICE NotifyService  
ON QUEUE NotifyQueue  
(  
[http://schemas.microsoft.com/SQL/Notifications/PostEventNotification]  
);  
GO  
CREATE ROUTE NotifyRoute  
WITH SERVICE_NAME = 'NotifyService',  
ADDRESS = 'LOCAL';  
GO  

Membuat Pemberitahuan Peristiwa

Pemberitahuan peristiwa dibuat dengan menggunakan pernyataan TRANSACT-SQL CREATE EVENT NOTIFICATION, dan dihilangkan dengan menggunakan PERNYATAAN PEMBERITAHUAN PERISTIWA DROP. Untuk mengubah pemberitahuan peristiwa, Anda harus menghilangkan dan membuat ulang pemberitahuan peristiwa.

Contoh berikut membuat pemberitahuan CreateDatabaseNotificationperistiwa . Pemberitahuan ini mengirimkan pesan tentang peristiwa apa pun CREATE_DATABASE yang terjadi di server ke NotifyService layanan yang sebelumnya dibuat.

CREATE EVENT NOTIFICATION CreateDatabaseNotification  
ON SERVER  
FOR CREATE_DATABASE  
TO SERVICE 'NotifyService', '8140a771-3c4b-4479-8ac0-81008ab17984' ;  

Perhatian

Pemberitahuan peristiwa mengenali peristiwa CREATE_SCHEMA dan <definisi schema_element> pernyataan CREATE SCHEMA sebagai peristiwa terpisah. Misalnya, pemberitahuan peristiwa dibuat pada peristiwa CREATE_SCHEMA dan CREATE_TABLE, dan Anda menjalankan batch berikut.

CREATE SCHEMA s

CREATE TABLE t1 (col1 int)

Dalam hal ini, pemberitahuan peristiwa dinaikkan dua kali: Waktu yang diperlukan ketika peristiwa CREATE_SCHEMA terjadi, dan sekali lagi ketika peristiwa CREATE_TABLE terjadi. Sebaiknya hindari membuat pemberitahuan peristiwa pada peristiwa CREATE_SCHEMA dan <teks schema_element> dari definisi CREATE SCHEMA yang sesuai, atau buat logika ke dalam aplikasi Anda untuk menghindari pengambilan data peristiwa yang tidak diinginkan.

Untuk membuat pemberitahuan peristiwa

Untuk menghilangkan pemberitahuan peristiwa

Lihat Juga

Mendapatkan Informasi Tentang Pemberitahuan Peristiwa
EVENTDATA (Transact-SQL)