Banco de Dados - SQL Server
SQL Server Integration Services - CHECKPOINTS
Nesse artigo o autor mostra como utilizar checkpoint em pacotes do SQL Server Integration Services.
por Lucas AlmeidaCheckpoint é um recurso do SQL Server Integration Services (SSIS) que permite a um pacote guardar informações sobre as suas Tasks (tarefas) que executaram com sucesso. Dessa forma o SSIS consegue reiniciar a execução do pacote a partir do ponto onde o pacote falhou. Assim o SSIS evita de executar tarefas repetidas dentro do pacote que possam consumir muito recurso.
Nesse artigo vou mostrar como utilizar checkpoint em pacotes do SQL Server Integration Services.
Ambiente Inicial
Para iniciarmos nosso exemplo vamos criar um cenário inicial.
Crie um projeto do SSIS no Business Intelligence Development Studio (BIDS).
Crie um pacote chamado Checkpoint e adicione 3 Script Task ao pacote, ligando os pacotes pela precedência Success como na imagem abaixo.
Na imagem, deixei aberta a janela com as propriedades do pacote. O primeiro conjunto de propriedades do pacote se chama Checkpoints e é onde vamos fazer a configuração do checkpoint para o nosso pacote.
Primeiramente devemos alterar a propriedade SaveCheckpoints para True. Altere também a propriedade CheckpointUsage para IfExists e em CheckpointFileName digite “c:\checkpoint.ckp” que é o caminho onde será salvo o arquivo de checkpoint.
Pronto! O nosso checkpoint já esta configurado, mas se você executar o pacote ele ainda não irá funcionar. Um pré-requisito para o checkpoint executar é alterar a propriedade FailPackageOnFailure para True.
Vamos executar o pacote para ver o resultado. Como o não há falhas no pacote todas as tarefas executaram com sucesso.
Agora vamos editar o Script Task 1 para forçar uma falha.
Dê duplo clique sobre o Scrip Task 1 para abrir a janela de configuração.
Clique em Design Script para escrevermos um pequeno código VB.NET.
Imports System Imports System.Data Imports System.Math Imports System.Windows.Forms Imports Microsoft.SqlServer.Dts.Runtime
Public Class ScriptMain Public Sub Main() `Dts.TaskResult = Dts.Results.Success `linha comentada Dts.TaskResult = Dts.Results.Failure End Sub End Class
|
No script acima eu apenas comentei a linha original onde esta o Dts.Results.Success e criei uma nova linha Dts.Results.Failure para forçar a falha.
Clique no menu File > Close and Return
Em seguida execute novamente o pacote e observe o comportamento abaixo:
Houve uma falha no pacote e o SSIS salvou um arquivo chamado c:\checkpoint.ckp no disco. Clique no botão Stop do SSIS e abra o arquivo no notepad.
Observe que foram gravados três identificadores.
<DTS:Checkpoint xmlns:DTS="www.microsoft.com/SqlServer/Dts" DTS:PackageID="{87BB08D6-26A7-4D57-BEF4-34A2817E71CC}"> <DTS:Variables DTS:ContID="{87BB08D6-26A7-4D57-BEF4-34A2817E71CC}"/> <DTS:Container DTS:ContID="{9B1A11C8-B4D6-4643-BCA0-2B537828DC1D}" DTS:Result="0" DTS:PrecedenceMap="Y"/> <DTS:Container DTS:ContID="{3F38FAD7-1056-45AE-AB0C-0008D48E81EA}" DTS:Result="0" DTS:PrecedenceMap=""/> </DTS:Checkpoint> |
Vermelho – ID do Pacote
Laranja – ID do Script Task
Verde – ID do Script Task 1
O último ID gravado foi o ponto da falha. O SSIS iniciará a próxima execução a partir desse ponto.
Abra novamente o Script Task 1. Vá até o Script Design, descomente a linha Dts.Results.Success e comente a linha Dts.Results.Failure para retirarmos a falha forçada.
Execute novamente o pacote e observe que a execução continuou a partir do Script Task 1.
Percebam que o arquivo de checkpoint foi apagado após a execução do pacote.
Com isso nós finalizamos
nosso artigo.
Contatos
Messenger: cyruslma@hotmail.com
E-mail pessoal: Lucas.lma@gmail.com
Abraço e até o próximo artigo!
Lucas Almeida
- Representando dados em XML no SQL ServerSQL Server
- Diferenças entre SEQUENCES x IDENTITY no Microsoft SQL Server 2012SQL
- Utilizando FILETABLE no SQL Server 2012SQL Server
- NHibernate com o Delphi Prism: Acessando um Banco de Dados SQL ServerVisual Studio
- Novidades no SQL Server Codinome DenaliSQL Server