Implementar el registro en paquetes
Integration Services incluye características de registro que escriben entradas del registro cuando se producen eventos en tiempo de ejecución y también pueden escribir mensajes personalizados.
Integration Services admite un variado conjunto de proveedores de registro y le permite crear proveedores de registro personalizados. Los proveedores de registro de Integration Services pueden escribir entradas del registro en archivos de texto, en SQL Server Profiler, en SQL Server, en el registro de eventos de Windows o en archivos XML.
Los registros se asocian a paquetes y se configuran en el nivel de paquete. Cada tarea o contenedor de un paquete puede registrar información en cualquier registro del paquete. Es posible habilitar las tareas y contenedores de un paquete para registro aunque el paquete no lo esté. Por ejemplo, puede habilitar el registro en una tarea Ejecutar SQL sin habilitar el registro en el paquete primario. Un paquete, un contenedor o una tarea pueden escribir en varios registros. Puede habilitar el registro solo en el paquete, o en cualquier tarea o contenedor individual que incluya el paquete.
Para personalizar el registro de un evento o mensaje personalizado, Integration Services proporciona un esquema de la información registrada habitualmente que se puede incluir en entradas del registro. El esquema de registro Integration Services define la información que puede registrar. Puede seleccionar elementos del esquema de registro para cada entrada del registro.
Un paquete y sus contenedores y tareas no tienen que registrar la misma información; además, las tareas y contenedores de un mismo paquete pueden registrar diferente información. Por ejemplo, un paquete puede registrar información del operador al iniciarse, una tarea puede registrar el origen del error de la tarea y otra tarea puede registrar la información de cuándo se producen errores. Si un paquete y sus contenedores y tareas utilizan varios registros, se escribirá la misma información en todos los registros.
Puede seleccionar un nivel de registro adaptado a sus necesidades, especificando los eventos que desea registrar y la información que desea registrar para cada evento. Algunos eventos pueden proporcionarle más información útil que otros. Por ejemplo, puede registrar únicamente el nombre del equipo y del operador para el evento PreExecute, y toda la información disponible para el evento Error.
Para evitar que los archivos de registro utilicen una gran cantidad de espacio en disco o evitar el registro excesivo, que podría reducir el rendimiento, puede limitar el registro, seleccionando los eventos y elementos de información específicos que desee registrar. Por ejemplo, puede configurar un registro para capturar únicamente la fecha y el nombre del equipo para cada error.
En el Diseñador SSIS, puede definir las opciones de registro en el cuadro de diálogo Configurar registros de SSIS.
Esquema de registro
En la tabla siguiente se describen los elementos del esquema de registro.
Elemento |
Descripción |
---|---|
Computer |
Nombre del equipo en el que ocurrió el evento del registro. |
Operator |
La identidad del usuario que inició el paquete. |
SourceName |
Nombre del contenedor o la tarea en los que ocurrió el evento del registro. |
SourceID |
Identificador único del paquete; el contenedor de bucles For, bucles Foreach o secuencias, o bien la tarea en la que ocurrió el evento del registro. |
ExecutionID |
GUID de la instancia de ejecución del paquete.
Nota
Al ejecutar un paquete único, se podrían crear entradas de registro con valores diferentes para el elemento ExecutionID. Por ejemplo, al ejecutar un paquete en BI Development Studio, la fase de validación podría crear entradas de registro con un elemento ExecutionID que corresponda a BI Development Studio. Sin embargo, la fase de ejecución podría crear entradas de registro con un elemento ExecutionID que corresponda a dtshost.exe. Otro ejemplo de esta situación es cuando se ejecuta un paquete que contiene tareas Ejecutar paquete, cada una de las cuales ejecuta un paquete secundario. Estos paquetes secundarios podrían crear entradas de registro que tengan un elemento ExecutionID diferente al de las entradas de registro que crea el paquete principal.
|
MessageText |
Mensaje asociado a la entrada del registro. |
DataBytes |
Matriz de bytes específica de la entrada del registro. El significado de este campo varía para cada entrada del registro. |
En la tabla siguiente se describen tres elementos adicionales del esquema del registro que no están disponibles en la ficha Detalles del cuadro de diálogo Configurar registros de SSIS.
Elemento |
Descripción |
---|---|
StartTime |
Hora en que el contenedor o la tarea empieza a ejecutarse. |
EndTime |
Hora en que el contenedor o la tarea deja de ejecutarse. |
DataCode |
Valor entero opcional que normalmente contiene un valor de la enumeración DTSExecResult que indica el resultado de la ejecución del contenedor o tarea:
|
Entradas del registro
Integration Services admite entradas del registro en eventos predefinidos y proporciona entradas del registro personalizadas para muchos objetos de Integration Services. El cuadro de diálogo Configurar registros de SSIS del Diseñador SSIS enumera estos eventos y entradas del registro personalizadas.
En la tabla siguiente se describen los eventos predefinidos que se pueden habilitar para escribir entradas del registro cuando se producen eventos en tiempo de ejecución. Estas entradas del registro se aplican a los ejecutables, al paquete y a las tareas y contenedores que incluye el paquete. El nombre de la entrada del registro es el nombre del evento que se produjo en tiempo de ejecución y que originó la entrada del registro.
Eventos |
Descripción |
---|---|
OnError |
Escribe una entrada del registro cuando se produce un error. |
OnExecStatusChanged |
Escribe una entrada del registro cuando cambia el estado de ejecución del ejecutable. |
OnInformation |
Escribe una entrada del registro durante la validación y ejecución de un ejecutable, para proporcionar información. |
OnPostExecute |
Escribe una entrada del registro inmediatamente después de que termine de ejecutarse el ejecutable. |
OnPostValidate |
Escribe una entrada del registro cuando finaliza la validación del ejecutable. |
OnPreExecute |
Escribe una entrada del registro inmediatamente antes de que se ejecute el ejecutable. |
OnPreValidate |
Escribe una entrada del registro cuando se inicia la validación del ejecutable. |
OnProgress |
Escribe una entrada del registro cuando el ejecutable realiza un progreso que se puede medir. |
OnQueryCancel |
Escribe una entrada del registro en cualquier momento del procesamiento de la tarea en el que es posible cancelar la ejecución. |
OnTaskFailed |
Escribe una entrada del registro cuando una tarea genera un error. |
OnVariableValueChanged |
Escribe una entrada del registro cuando cambia el valor de una variable. |
OnWarning |
Escribe una entrada del registro cuando se produce una advertencia. |
PipelineComponentTime |
Por cada componente de flujo de datos, escribe una entrada de registro de cada fase de validación y ejecución. La entrada del registro especifica el tiempo de procesamiento para cada fase. |
Diagnostic |
Escribe una entrada de registro que proporciona información de diagnóstico. Por ejemplo, puede registrar un mensaje antes y después de cada llamada a un proveedor de datos externo. Para obtener más información, vea Solucionar problemas de ejecución de paquetes. |
El paquete y muchas tareas poseen entradas del registro personalizadas que se pueden habilitar para el registro. Por ejemplo, la tarea Enviar correo proporciona la entrada del registro personalizada SendMailTaskBegin, que registra información cuando se inicia la ejecución de la tarea Enviar correo, pero antes de que la tarea envíe un mensaje de correo electrónico. Para obtener más información, vea Mensajes personalizados para registro.
Diferenciar copias de paquetes
Los datos del registro incluyen el nombre y GUID del paquete al que pertenecen las entradas del registro. Si crea un nuevo paquete mediante la copia de un paquete existente, también se copian el nombre y GUID del paquete existente. Como resultado, puede tener dos paquetes con el mismo nombre y GUID, lo que dificulta la diferenciación entre los paquetes en los datos del registro.
Para eliminar esta ambigüedad, deberá actualizar el nombre y GUID de los nuevos paquetes. En Business Intelligence Development Studio, puede volver a generar el GUID en la propiedad ID y actualizar el valor de la propiedad Name en la ventana Propiedades. También puede cambiar el nombre y GUID mediante programación o con el símbolo del sistema de dtutil . Para obtener más información, vea Establecer las propiedades de paquete y dtutil (utilidad).
Opciones del registro primario
Con frecuencia, las opciones de registro de tareas y de los contenedores de bucles For y Foreach y de secuencias coinciden con las del paquete o el contenedor primario. En ese caso, puede configurarlas para que hereden las opciones de registro del contenedor primario. Por ejemplo, en un contenedor de bucles For que incluya una tarea Ejecutar SQL, esta tarea puede utilizar las opciones de registro configuradas para el contenedor de bucles For. Para utilizar las opciones del registro primario, establezca la propiedad LoggingMode del contenedor en UseParentSetting. Puede establecer esta propiedad en la ventana Propiedades de Business Intelligence Development Studio o mediante el cuadro de diálogo Configurar registros de SSIS del Diseñador SSIS.
Plantillas de registro
En el cuadro de diálogo Configurar registros de SSIS, también puede crear y guardar como plantillas las configuraciones del registro que utiliza con frecuencia y después, utilizar las plantillas en distintos paquetes. Esto permite aplicar más fácilmente una estrategia de registro coherente entre varios paquetes y modificar las configuraciones del registro en los paquetes actualizando las plantillas y aplicándolas después. Las plantillas se almacenan en archivos XML.
Para configurar el registro con el cuadro de diálogo Configurar registros de SSIS
Habilite el paquete y sus tareas para el registro. El registro se puede producir en el nivel de paquete, de contenedor y de tarea. Puede especificar diferentes registros para paquetes, contenedores y tareas.
Seleccione un proveedor de registro y agregue un registro para el paquete. Solo se pueden crear registros en el nivel de paquete y una tarea o un contenedor deben utilizar uno de los registros creados para el paquete. Cada registro está asociado a uno de los proveedores de registro siguientes: archivo de texto, SQL Server Profiler, SQL Server, Registro de eventos de Windows o archivo XML. Para obtener más información, vea Cómo habilitar el registro en un paquete.
Seleccione los eventos y la información del esquema de registro de cada evento que desee capturar en el registro. Para obtener más información, vea Cómo configurar el registro utilizando un archivo de configuración guardado.
Para ver las entradas de registro durante el desarrollo de paquetes
Recursos externos
- Proyecto CodePlex, Herramienta DTLoggedExec para registro completo y detallado (en inglés), en www.codeplex.com
|