Transformação de controle de transações na Informatica (exemplo)
⚡ Resumo Inteligente
A transformação de Controle de Transações no Informatica é um objeto ativo e conectado que confirma ou reverte linhas enquanto um mapaping executa, usando cinco variáveis internas dentro de uma condição avaliada uma vez para cada linha.

O que é transformação do controle de transações?
O Controle de Transações é uma transformação ativa e conectada que nos permite confirmar ou reverter transações durante a execução do mapeamento.pingAs operações de commit e rollback são de extrema importância porque garantem a disponibilidade dos dados.
Ao processar um grande volume de dados, pode surgir a necessidade de confirmar os dados no destino. Se a confirmação for realizada com muita frequência, isso sobrecarregará o sistema. Se a confirmação for realizada muito tarde, em caso de falha, há chances de perda de dados.
Assim, para proporcionar flexibilidade, é fornecida a transformação de Controle de Transações. Em vez de deixar o ponto de confirmação com o valor padrão da sessão, ela permite uma condição dentro do... mapa,ping Decida, linha por linha, onde uma transação termina e a próxima começa.
Comandos TCL Commit e Rollback
Existem cinco variáveis internas disponíveis nesta transformação para lidar com a operação. A condição deve retornar uma das cinco para cada linha, e um valor fora dessa lista fará com que o Serviço de Integração falhe na sessão.
TC_CONTINUE_TRANSACTION
Em TC_CONTINUE_TRANSACTION, nenhuma operação é realizada; o processo de carregamento de dados continua normalmente. Este é o valor padrão da expressão.
TC_COMMIT_BEFORE
Em TC_COMMIT_BEFORE, quando este sinalizador é encontrado definido, um commit é realizado antes do processamento da linha atual. Uma nova transação é então iniciada e a linha atual é gravada no destino.
TC_COMMIT_AFTER
Em TC_COMMIT_AFTER, a linha atual é processada, em seguida, um commit é realizado e a próxima transação é iniciada.
TC_ROLLBACK_BEFORE
Em TC_ROLLBACK_BEFORE, o rollback é executado primeiro e, em seguida, os dados são processados para gravação.
TC_ROLLBACK_AFTER
Em TC_ROLLBACK_AFTER, os dados são processados e, em seguida, o rollback é executado.
Propriedades de transformação do controle de transações
O objeto é configurado na janela Editar Transformações, que possui as mesmas quatro abas das outras transformações do PowerCenter. Saber qual aba corresponde a qual configuração evita muita busca durante o passo a passo abaixo.
| Aba | O que está configurado lá? |
| Transformação | Nome da transformação, sua descrição e se o objeto se torna reutilizável. |
| Portos | As portas de entrada e saída são normalmente criadas arrastando as colunas da transformação anterior. |
| Propriedades | A condição de controle da transação, aberta com a pequena seta ao lado do campo, e o TracNível de atividade registrado no log da sessão. |
| Extensões de metadados | Metadados definidos pelo usuário são mantidos juntamente com a transformação no repositório. |
Duas configurações fazem o trabalho de verdade. A Condição de controle de transação Contém a expressão, que geralmente é um teste IIF() que retorna uma das cinco variáveis. TracNível de ing Determina o nível de detalhe da transformação que aparece no registro da sessão quando a execução é investigada.
Um cenário fica fora da transformação. Quando um mapaping Contém uma transformação de Controle de Transações eficaz; a sessão é executada com o Tipo de commit Defina como Definido pelo Usuário na guia Propriedades do Sessão, ao invés de Target ou tipos de commit de origem que usam um intervalo de commit fixo.
Como usar a transformação de controle de transações no Informatica
Neste exemplo, enviaremos os dados para o destino quando a condição "número do departamento = 20" for verdadeira.
Passo 1) Criar um mapaping Com EMP como origem e EMP_TARGET como destino. O Mapaping A tela do designer então contém a fonte, seu qualificador de fonte e a definição de destino.
Passo 2) Crie uma nova transformação usando o menu Transformação e, em seguida, na janela Criar Transformação:
- Selecione um Controle de Transação como a nova transformação.
- Insira o nome da transformação “tc_commit_dept20”
- Selecione a opção de criação
Passo 3) A transformação de Controle de Transação será criada; selecione o botão Concluído. O novo objeto agora aparece na tela ao lado do Qualificador de Origem.
Passo 4) Arraste e solte todas as colunas do Qualificador de Origem para a transformação de Controle de Transação e, em seguida, vincule todas as colunas da transformação de Controle de Transação à tabela de destino. O pipeline agora executa a seguinte sequência: origem → Qualificador de Origem → tc_commit_dept20 → EMP_TARGET.
Passo 5) Double Clique na transformação Controle de Transações e, em seguida, na janela de edição de propriedades:
- Selecione a guia de propriedade
- Clique no ícone do editor de controle de transações
Passo 6) No editor de expressões, insira a expressão –
iif(deptno=20,tc_commit_before,tc_continue_transaction)
e selecione OK. Isso significa que, se o departamento nº 20 for encontrado, a transação será confirmada no destino; caso contrário, o processamento atual continuará.
Passo 7) Selecione OK na janela anterior. A condição agora está armazenada na guia Propriedades da transformação.
Agora salve o mapaping e executá-lo após criar a sessão e os fluxos de trabalho. Este mapaping Os dados serão enviados ao destino sempre que o número do departamento 20 for encontrado nos dados.
Transformações de controle de transações eficazes e ineficazes
A transformação é um gerador de transações. Ela descarta qualquer limite de transação que chegue de montante e define novos limites próprios para tudo que vem a jusante, razão pela qual sua posição no pipeline é tão importante quanto sua condição.
É chamado eficaz para um alvo quando os limites que ele cria ainda alcançam esse alvo, e ineficaz quando uma transformação posterior descarta esses limites. De acordo com o Guia de Transformação do Informatica PowerCenter, os seguintes objetos descartam os limites de transação de entrada:
- Um agregador, Marceneiro, Rank, Classificador ou transformação personalizada cujo escopo de transformação seja Todas as entradas
- Uma transformação personalizada configurada para gerar transações.
- Outra transformação de controle de transações
- Uma transformação de grupo de múltiplas entradas conectada a mais de um ponto de controle de transação upstream.
O fato de um objeto ser ineficaz para o alvo não o torna inútil. Uma transformação subsequente cujo Escopo de Transformação é Transação ainda utiliza os limites definidos anteriormente; portanto, a mesma transformação pode ser eficaz para um Classificador e ineficaz para a tabela subjacente.
Em um mapaping Com vários alvos, o objeto pode ser eficaz para um alvo e ineficaz para outro. O mapaping A condição permanece válida enquanto cada destino estiver conectado a uma transformação de Controle de Transação efetiva e torna-se inválida assim que um destino deixar de estar. O Designer informa quais transformações são ineficazes para os destinos quando o mapaping é salvo ou validado.
Regras e diretrizes para a transformação do controle de transações
A maioria dos problemas com essa transformação aparece em tempo de execução, e não em tempo de projeto, portanto, vale a pena verificar os pontos abaixo antes da criação da sessão.
- O valor de retorno é estrito. Se a condição for avaliada como algo diferente de commit, rollback ou continue, o Serviço de Integração encerrará a sessão como falha.
- TC_CONTINUE_TRANSACTION é a alternativa. Cada ramificação da função IIF() precisa terminar em algum lugar, e continue é o valor que deixa a transação atual intacta.
- O tipo de alvo importa. Uma transformação de Controle de Transações conectada a qualquer destino que não seja relacional, XML ou MQSeries dinâmico é ineficaz para esse destino.
- A condição só pode usar o que estiver ao seu alcance. Somente as portas vinculadas à transformação, suas portas variáveis e as variáveis internas estão disponíveis no editor de controle de transações.
- A frequência de commits é uma questão de equilíbrio. Uma condição que é executada em quase todas as linhas elimina o benefício do armazenamento em buffer, enquanto uma condição que quase nunca é acionada reintroduz a janela de perda de dados que a transformação foi adicionada para evitar.
- Verifique o registro da sessão. O registro armazena os pontos de commit que foram efetivamente executados, sendo essa a maneira mais rápida de confirmar se a condição se comportou conforme o esperado durante a execução. ajuste de desempenho.







