Definir reglas de evento

Si la aplicación admite suscripciones controladas por eventos, debe definir al menos una regla de evento.

Las reglas de evento son conjuntos con nombre de una o varias consultas Transact-SQL que crean notificaciones para suscripciones controladas por eventos. Opcionalmente, las reglas de evento pueden manipular los datos en crónicas de eventos. Las reglas de evento se procesan para cada lote de eventos justo después de que llegue el lote de eventos.

[!NOTA] El tiempo exacto para activar reglas de evento depende de la duración del cuanto y de cómo la aplicación procesa eventos. Para obtener más información, vea Especificar la duración de cuantos del generador y Especificar el orden de procesamiento de eventos.

Cada clase de suscripción puede contener una o más reglas de evento. Sin embargo, no puede especificar el orden de activación de las reglas. Las reglas de evento se pueden activar en cualquier orden.

Procesamiento de reglas de evento

Notification Services utiliza el proceso siguiente para generar notificaciones de reglas de evento:

  1. Llegan los eventos.
  2. Notification Services crea un lote de eventos por clase de eventos y, a continuación, agrega cada lote de eventos a su tabla de eventos respectiva.
  3. Notification Services ejecuta cualquier regla de crónica para la clase de eventos, lo que mantiene las tablas de crónicas de eventos.
    Si se produce un error en la regla de crónica, el procesamiento se detiene y se marca el lote de eventos como incorrecto. Las reglas de evento no se ejecutarán porque dependen de un procesamiento de lotes de eventos correcto.
  4. A continuación, Notification Services activa reglas de evento, lo que combina datos de eventos con datos de suscripción para generar notificaciones. Las reglas de evento operan en una vista que muestra sólo los eventos actuales para la clase de eventos y una vista de suscripciones que sólo muestra las suscripciones habilitadas. Las reglas de evento también pueden utilizar datos de crónica de eventos.
  5. Las reglas de evento agregan las notificaciones resultantes a tablas de notificaciones. Estos datos se utilizan para generar y distribuir notificaciones.

Dado que las notificaciones se generan poco después de que lleguen los eventos, las reglas de evento son adecuadas para eventos que se producen aleatoriamente y datos para los que es importante el tiempo. Las suscripciones de actualización de subasta y las alertas de noticias de última hora son ejemplos de las aplicaciones que deberían utilizar reglas de evento.

Definir una regla de evento

Una regla de evento forma parte de una clase de suscripción. Al definir una clase de suscripción, debe definir al menos una regla, sea de evento o programada. Para definir una regla de evento, cree un elemento de regla de evento. A continuación, proporcione un nombre, una acción para realizar y el nombre de la clase de evento vinculada. También puede proporcionar un valor de tiempo de espera para la acción de regla de evento.

Para definir una regla de evento

Denominar una regla de evento

Cada regla de evento debe tener un nombre único en la aplicación. Este nombre se utiliza para identificar cada regla con fines administrativos.

Para denominar una regla de evento

  • Si está definiendo una regla de evento a través de XML, defina el nombre de regla de evento mediante RuleName Element for EventRule (ADF).
  • Si está definiendo una regla de evento mediante programación, defina el nombre de regla de evento en la clase SubscriptionEventRule (NMO).
  • Si está definiendo una regla de evento con una acción de condición mediante programación, defina el nombre de regla de evento mediante la clase SubscriptionConditionEventRule (NMO).

Definir una acción o una acción de condición

Una acción es la consulta que Notification Services ejecuta cada vez que activa la regla. Las reglas de evento pueden contener acciones simples y acciones de condición más complejas:

  • Una acción contiene una consulta Transact-SQL utilizada para generar notificaciones basadas en correspondencias entre campos de suscripción y campos de evento. Cuando los suscriptores crean suscripciones, definen parámetros para la consulta predefinida. Para obtener información acerca de cómo definir acciones simples, vea Definir acciones.
  • Una acción de condición también tiene una consulta Transact-SQL, pero esta consulta define una vista desde la que los suscriptores pueden definir sus suscripciones. En vez de proporcionar parámetros para una consulta predefinida, los suscriptores seleccionan los campos que les interesan y, después, definen sus propias condiciones mediante un conjunto predeterminado de operadores. Para obtener información acerca de cómo definir acciones de condición, vea Definir acciones de condición.

Especificar un valor de tiempo de espera

El tiempo de espera de acción especifica la duración de tiempo permitida para que se completen las instrucciones de la acción o de la acción de condición. Si no se completan las instrucciones antes de que se agote el tiempo de espera, Notification Services revierte la transacción, marca la regla de evento como incorrecta y escribe un error en el registro de eventos.

Para especificar un valor de tiempo de espera

Vincular la regla a una clase de eventos

Cada regla de evento debe estar asociada a una sola clase de eventos. Notification Services activa la regla de evento sólo después de procesar los lotes de eventos de la clase de eventos especificada.

Para vincular la regla a una clase de eventos

Vea también

Conceptos

Definir reglas programadas
Definir acciones
Definir acciones de condición
Definir reglas de suscripción
Definir crónicas para una clase de evento

Ayuda e información

Obtener ayuda sobre SQL Server 2005