Especificar configuraciones de ejecución de protocolo de entrega

Cuando configura un protocolo de entrega, puede definir varias configuraciones de ejecución que configuran el reintento de entrega, el error y el control de tiempo de espera. En este tema se describe cómo especificar estas configuraciones de ejecución de protocolo de entrega.

Reintentar la entrega de notificaciones

Cuando se producen errores en la entrega de notificaciones, el distribuidor puede intentar entregar las notificaciones de nuevo. Configure una programación de reintento para cada protocolo de entrega utilizado por una clase de notificación.

La lógica de reintento se aplica en el nivel de elemento de trabajo del distribuidor. Si no se puede entregar ninguna notificación en un elemento de trabajo, el propio elemento de trabajo del distribuidor considera que ha tenido errores. El distribuidor puede reintentar la entrega del elemento de trabajo del distribuidor más tarde según el programa especificado.

Cuando el distribuidor reintenta un elemento de trabajo, sólo se vuelven a enviar las notificaciones que no se pudieron entregar durante el intento anterior de entrega. Sin embargo, si se produce un error que impide que el distribuidor actualice el estado de entrega de una notificación, el distribuidor puede volver a intentar la entrega y puede que vuelva a enviar una notificación duplicada en el reintento siguiente.

Cuando configura una programación de reintentos, especifique uno o más valores de intervalo entre reintentos. Si se produce un error en la entrega de una notificación, el distribuidor espera para recoger el elemento de trabajo de nuevo hasta que transcurra el intervalo especificado en el primer valor de intervalo entre reintentos. Si se vuelve a producir un error en la entrega de notificaciones, el distribuidor esperará a que transcurra el segundo intervalo entre reintentos y, a continuación, intentará de nuevo la entrega. Este proceso continúa hasta que se hayan agotado todos los valores de intervalo entre reintentos o hasta que las notificaciones no entregadas caduquen, lo que suceda antes.

[!NOTA] Especifique un tiempo de caducidad por clase de notificación, no por protocolo de entrega. Para obtener más información, vea Especificar el tiempo de caducidad de una notificación.

Ejemplo

La siguiente tabla muestra cómo el distribuidor reintenta la entrega de notificaciones con tres valores de intervalo entre reintentos.

Intento de entrega inicial

1:00

Primer intervalo entre reintentos = 15 minutos

1:15

Segundo intervalo entre reintentos = 30 minutos

1:45

Tercer intervalo entre reintentos = 60 minutos

2:45

Los valores de intervalo entre reintentos no afectan a la programación de activación del distribuidor. Estos valores representan retrasos mínimos; el retraso real entre intentos podría ser más largo.

Si su servidor experimenta un tiempo de inactividad prolongado, podría transcurrir más de un intervalo entre reintentos sin que el distribuidor intente realizar un reintento. Si se produce esto, el distribuidor realiza inmediatamente un reintento en aquellos elementos de trabajo del distribuidor que no han caducado cuando el servidor se vuelve a conectar. A continuación, reanuda la programación de intervalos entre reintentos y espera el tiempo especificado en el siguiente intervalo entre reintentos antes de intentarlo de nuevo.

Para especificar una programación de reintentos

Registrar errores de entrega

El distribuidor escribe entradas en el registro de aplicación de Windows para documentar errores de entrega de notificaciones. Configure cómo y cuándo el distribuidor registra eventos de errores de entrega para cada protocolo de entrega.

ms171406.note(es-es,SQL.90).gifImportante:
Notification Services recibe comentarios de errores limitados de los sistemas de entrega externos. La mayoría de los errores dan como resultado un "error de entrega" genérico en el registro de eventos. Errores de entrega coherentes podrían indicar un problema de configuración. Para comprobar la configuración de entrega, revise las configuraciones de canal de entrega en la configuración de instancia y los valores de campo de protocolo en la definición de aplicación.

La primera propiedad que puede configurar es cuántos errores se deben producir para que el distribuidor registre un evento en el registro de aplicación. La segunda propiedad que puede configurar es el intervalo mínimo entre eventos de registro, independientemente del número de errores. Estas dos configuraciones permiten controlar cuántos eventos escribe el distribuidor en el registro de aplicación e impide que se sobrecargue el registro de aplicación cuando se producen varios errores en un período de tiempo corto.

Por ejemplo, si el número de errores está configurado en 5 y el intervalo se establece en 10 minutos, se deben producir cinco errores para que el distribuidor registre un error. Después de 10 minutos, el recuento de errores comienza de nuevo. Después de otros cinco errores, el distribuidor escribe otro evento en el registro de aplicación.

Al desarrollar una aplicación, quizás desee utilizar los valores predeterminados de un error y cero minutos. Sin embargo, cuando una aplicación está en producción, considere la posibilidad de utilizar valores más altos para equilibrar la necesidad de información de errores y el deseo de minimizar un registro excesivo.

[!NOTA] Los procedimientos almacenados NSDiagnosticDeliveryChannel (Transact-SQL) y NSDiagnosticFailedNotifications (Transact-SQL) pueden ser útiles para solucionar errores de entrega.

Para configurar el número de errores de entrega antes de registrar un evento

  • Si está definiendo una aplicación a través de XML, defina el número de errores de entrega que deben producirse para poder de registrar un evento en el FailuresBeforeLoggingEvent Element (ADF).
  • Si está definiendo una aplicación mediante programación, defina el número de errores de entrega antes de registrar un evento con la propiedad FailuresBeforeEventLog (NMO).

Para configurar el intervalo entre registros

Detener la entrega después de errores consecutivos

En casos donde se produce un error de entrega a causa de una interrupción de red prolongada, en vez de condiciones de red transitorias, el distribuidor puede detener los intentos de entrega en un elemento de trabajo para evitar sobrecargar la red.

Puede especificar cuántos errores de entrega consecutivos se deben producir dentro de un elemento de trabajo antes de que el distribuidor cancele los intentos de entrega adicionales sobre notificaciones en ese elemento de trabajo. Cuando se alcanza el límite, el distribuidor escribe un mensaje en el registro de aplicación y, a continuación, marca el elemento de trabajo como erróneo. En este caso podría haber notificaciones en el elemento de trabajo que no se intentaron nunca. Si existe una programación de reintentos, el distribuidor recogerá el elemento de trabajo en el siguiente intervalo entre reintentos y reintentará las notificaciones erróneas y las que no se intentaron nunca.

Para configurar el número de errores consecutivos que deben producirse antes de detener la entrega

  • Si está definiendo una aplicación a través de XML, defina el número de errores consecutivos en el FailuresBeforeAbort Element (ADF).
  • Si está definiendo una aplicación mediante programación, defina el número de errores consecutivos con la propiedad FailuresBeforeAbort (NMO).

Limitar destinatarios de multidifusión

Para cada protocolo de entrega, también puede limitar el número de suscriptores que pueden recibir una multidifusión única. Para obtener más información acerca de la multidifusión, vea Especificar entrega de resumen o de multidifusión.

Cuando limita el número de destinatarios de multidifusión, el distribuidor deja de agregar suscriptores a la lista de destinatarios de multidifusión cuando se alcanza el límite. A continuación, el distribuidor inicia una lista nueva y agrega suscriptores a la lista nueva hasta que se alcance el límite. Este proceso continúa hasta que todas las notificaciones de multidifusión dentro de un elemento de trabajo se agregan a las listas de destinatarios de multidifusión.

ms171406.note(es-es,SQL.90).gifImportante:
Las configuraciones de multidifusión no están disponibles en SQL Server 2005 Standard Edition.

Para configurar el límite de destinatarios de multidifusión

  • Si está definiendo una aplicación a través de XML, defina el límite de destinatarios de multidifusión en el MulticastRecipientLimit Element (ADF).
  • Si está definiendo una aplicación mediante programación, defina el límite de destinatarios de multidifusión con la propiedad MulticastRecipientLimit (NMO).

Establecer un tiempo de espera de elemento de trabajo

Cuando el distribuidor recoge un elemento de trabajo, llama al formateador de contenido para aplicar formato a las notificaciones y al protocolo de entrega para empaquetar y entregar las notificaciones. Si un elemento de trabajo es muy grande o si la distribución se bloquea por cualquiera de motivo, el elemento de trabajo puede consumir un subproceso del distribuidor y retrasar el procesamiento de otras notificaciones.

Si especifica un tiempo de espera de elemento de trabajo para un protocolo de entrega, el distribuidor libera el elemento de trabajo después del tiempo especificado. El distribuidor marca el elemento de trabajo como erróneo y recoge de nuevo el elemento de trabajo si el protocolo de entrega tiene una programación de reintentos.

Para configurar un tiempo de espera de elemento de trabajo

  • Si está definiendo una aplicación a través de XML, defina el valor de tiempo de espera de elemento de trabajo en el WorkItemTimeout Element (ADF).
  • Si está definiendo una aplicación mediante programación, defina el valor de tiempo de espera de elemento de trabajo con la propiedad WorkItemTimeout (NMO).

Vea también

Conceptos

Configurar el registro de distribuidor

Otros recursos

Procedimientos almacenados de Notification Services (Transact-SQL)
Configurar protocolos de entrega
Definir clases de notificación
Definir aplicaciones de Notification Services

Ayuda e información

Obtener ayuda sobre SQL Server 2005