Aracılığıyla paylaş


Olay Bildirimlerini Uygulama

Şunlar için geçerlidir: SQL Server

Olay bildirimi uygulamak için önce olay bildirimlerini almak üzere bir hedef hizmet oluşturmanız ve ardından olay bildirimini oluşturmanız gerekir.

Önemli

Hizmet Aracısı iletişim kutusu güvenliği, uzak sunucudaki bir hizmet aracısına ileti gönderen olay bildirimleri için yapılandırılmalıdır. Diyalog güvenliği, tam güvenlik modeline göre manuel olarak yapılandırılmalıdır.

Hedef Hizmeti Oluşturma

Hizmet Aracısı olay bildirimleri için aşağıdaki özel ileti türünü ve sözleşmeyi içerdiğinden, Hizmet Aracısı başlatma hizmeti oluşturmanız gerekmez:

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

Olay bildirimleri alan hedef hizmet, bu önceden var olan sözleşmeye uymalıdır.

Hedef hizmetoluşturmak için:

  1. İletileri almak için bir kuyruk oluşturun.

    Not

    Kuyruk şu ileti türünü alır: http://schemas.microsoft.com/SQL/Notifications/QueryNotification.

  2. Kuyrukta olay bildirimleri sözleşmesine referans veren bir hizmet oluşturun.

  3. Hizmet Aracısı'nın hizmet için ileti gönderdiği adresi tanımlamak için hizmette bir yol oluşturun. Aynı veritabanındaki bir hizmeti hedefleyen olay bildirimleri için ADDRESS = 'LOCAL'belirtin.

    Not

    Hizmet Aracısı yönlendirmesi, bildirim iletilerini alan hizmeti belirler. Olay bildirimi uzak sunucudaki bir hizmeti hedeflerse, iki yönlü iletişimin gerçekleştiğinden emin olmak için hem kaynak sunucunun hem de hedef sunucunun bu sunucularda tanımlanmış yolları olmalıdır.

Aşağıdaki örnek, bir kuyruk, kuyruk üzerindeki bir hizmet ve olay bildirimi sözleşmesinden gelen iletileri işlemek için hizmette bir rota oluşturur.

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  

Olay Bildirimi Oluşturma

Olay bildirimleri, Transact-SQL CREATE EVENT NOTIFICATION deyimi kullanılarak oluşturulur ve DROP EVENT NOTIFICATION deyimi kullanılarak kaldırılır. Bir olay bildirimini değiştirmek için olay bildirimini bırakmanız ve yeniden oluşturmanız gerekir.

Aşağıdaki örnek, CreateDatabaseNotificationolay bildirimini oluşturur. Bu bildirim, sunucuda gerçekleşen herhangi bir CREATE_DATABASE olayı hakkında daha önce oluşturulmuş NotifyService hizmetine bir ileti gönderir.

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

Dikkat

Olay bildirimleri, CREATE_SCHEMA olayları ve CREATE SCHEMA deyimlerinin <schema_element> tanımlarını ayrı olaylar olarak tanır. Örneğin, hem CREATE_SCHEMA hem de CREATE_TABLE olaylarında bir olay bildirimi oluşturulur ve aşağıdaki toplu işlemi çalıştırırsınız.

CREATE SCHEMA s

CREATE TABLE t1 (col1 int)

Bu durumda, olay bildirimi iki kez oluşturulur: bir kez CREATE_SCHEMA olayı gerçekleştiğinde ve tekrar CREATE_TABLE olayı gerçekleştiğinde. hem CREATE_SCHEMA olaylarında hem de ilgili CREATE SCHEMA tanımlarının <schema_element> metinlerinde olay bildirimleri oluşturmaktan kaçınmanızı veya istenmeyen olay verilerini yakalamamak için uygulamanızda mantık oluşturmanızı öneririz.

Olay bildirimi oluşturmak için

Olay bildirimini kaldırmak için

Ayrıca Bkz.

Olay Bildirimleri hakkında bilgi edinin
EVENTDATA (Transact-SQL)