Artículo: CheckPoints en SQL Server Integration Services

Contamos con un paquete de SQL Server Integration Services, el cual tiene diferentes tareas a ejecutar, como en la siguiente imagen.

image

Durante la ejecución, falla una de las tareas:

image

Supongamos que el problema se detecta y se soluciona. La pregunta a hacernos es, “al volver a ejecutar el paquete, desde donde debería comenzar?” Si la respuesta es “desde la tarea donde se produjo el fallo”, es ahí donde necesitamos del uso de los CheckPoints.

Un punto de comprobación, o CheckPoint, garantiza que un paquete se reinicie desde el punto de fallo de la ejecución de un paquete, y no desde el inicio. El uso de puntos de comprobación garantiza las siguientes ventajas:

  1. Evita repetir procesos de carga y descarga de archivos grandes.
  2. Evita repetir cargas de grandes cantidades de datos.
  3. Evita repetir la agregación de valores previamente ingresados.

 

CÓMO FUNCIONA UN PUNTO DE COMPROBACIÓN

Durante la ejecución de un paquete, si se llegase a presentar un error, el punto de comprobación se encarga de guardar en un archivo de configuración, información tal como el contenedor o tarea que provocó el fallo y del estado de todos los contenedores, valores de parámetros y variables que existan en ese momento y el identificador único del paquete. De esta manera, en la siguiente ejecución, el paquete usará la información de dicho archivo. Si el paquete se ejecuta de manera correcta, dicho archivo se borrará.

CÓMO CONFIGURAR UN PAQUETE PARA QUE SE REINICIE

Es importante configurar 3 propiedades a nivel del paquete:

  • CheckPointFileName: Especifica el nombre del archivo del CheckPoint
  • CheckPointUsage: Especifica si se utilizarán CheckPoints
  • SaveCheckPoints: Especifica si se guardarán CheckPoints. Esta propiedad debe estar en True para poder reiniciar el paquete en un punto de fallo.

Por último, para cada uno de los contenedores en donde deseemos establecer puntos de comprobación, establecemos la propiedad FailPackageOnFailure en True.

La propiedad CheckPointUsage, permite seleccionar los siguientes valores:

  • Never: Indica que nunca usará el archivo de configuración. Por ende, siempre se ejecutará desde el inicio.
  • Always: Indica que siempre se utilizará el archivo de configuración para la ejecución del paquete. Si el archivo no existe, la ejecución genera error.
  • IfExists: Especifica que usará el archivo solo en caso de existir. En caso de no estar, el paquete se ejecutará desde el inicio.

 

Y AHORA…. A PROBARLO!!!

  • Establecemos las propiedades a nivel del  paquete

image

  • Cambiamos la propiedad FailPackageOnFailure a True, en la tarea que falla

image

  • Ejecutamos el paquete para provocar el fallo.

image

  • Solucionamos el error, volvemos a ejecutar el paquete y…. Magia!!!!

image

  • Volvamos a ejecutar el paquete… Este debe comenzar desde el inicio, ya que el archivo se borra tras la ejecución exitosa.

image

Leave a comment

Filed under Alberto Rivera, Artículo, SQL Server 2014

Leave a comment