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:
Buat antrean untuk menerima pesan.
Catatan
Antrean menerima jenis pesan berikut:
http://schemas.microsoft.com/SQL/Notifications/QueryNotification
.Buat layanan pada antrean yang mereferensikan kontrak pemberitahuan peristiwa.
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 CreateDatabaseNotification
peristiwa . 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)