30 Janeiro 2018

PowerCenter: TM_6190 – Porque Acontece e Como Resolver

Muitas vezes, já em fase de testes aos nossos mapeamentos, deparamo-nos com um erro no workflow. Ao olharmos para a Informação de Falha (Failure Information) da Session, encontramos o “First Error Code 0”, e ao tentarmos ver o Session Log, deparamo-nos com uma janela de erro com “Unable to fecth Log”. Somos então obrigados a procurar o erro no Workflow Log e é aí que encontramos o erro TM_6190.

 

 

 

Este erro é desesperante, pois a única pista que nos dá é de que há uma Lookup ou uma Stored Procedure com um erro numa conexão, para além de que, por mais que façamos Revert às conexões de todos esses objetos, ou mesmo que as limpemos e as reescrevamos, o erro mantém-se.

1.1. De onde provém este erro, e como resolvê-lo?

Como referi no início deste artigo, este problema costuma surgir em fases adiantadas de desenvolvimento, quando tentamos corrigir conexões em Lookups ou procedimentos que verificámos que estavam errados.

Quando criamos um destes objetos no Designer, no campo Connection Information, na Tab Properties, devemos encontrar uma conexão $Source ou $Target, que nem sempre é a correta, e então alteramos a mesma. Quando criamos a sessão do mesmo mapeamento no Workflow Manager, deparamo-nos que esta Conexão não foi herdada, e procedemos à sua alteração.

 

O que acontece muitas vezes, é que não acertamos com a conexão à primeira, e isso leva-nos a alterar a mesma. Para manter a coerência, o que fazemos é alterar em simultâneo a sessão e o mapping. E é aqui que tem origem o erro.

As aplicações de PowerCenter comunicam entre si através de metadata. Quando é feito Save, é enviado para todas as aplicações um alerta de que objeto X foi alterado e ao efetuar alterações em simultâneo no designer e no workflow, esta metadata não é atualizada corretamente, então apesar de termos visualmente as conexões corretas, internamente na metadata da aplicação, temos uma incongruência. Ao efetuar o pedido de "run" ao monitor, este não vai saber o que fazer, e despoleta o erro.

1.2. Prevenção

Para prevenir este erro, não devemos fazer alterações em simultâneo em ambos os ambientes. Como tal, sempre que necessitemos de efetuar alterações numa, ou noutra aplicação, devemos desconectar-nos da pasta em que estamos a trabalhar numa das aplicações e iniciar as alterações na outra aplicação.

Desta forma conseguimos prevenir e garantir que, qualquer alteração efetuada, seja comunicada corretamente entre ambos os ambientes.

1.3. Correção

Para corrigir o erro, devemos:

> Desconectar a pasta no Designer.
> Limpar a conexão (ou fazer Revert) no Workflow Designer, gravar e em seguida desconectar a pasta.
> Voltamos então ao Designer, fazemos duplo click na pasta, limpamos a conexão (podemos substituir a mesma por um objeto relacional), guardamos a pasta, fechamo-la e reabrimo-la.
> Colocamos a conexão pretendida, salvamos o mapping e voltamos a fechar a pasta.
> De seguida, devemos abrir a pasta no worflow designer, fazer refresh à sessão, abrir a mesma e, se necessário, efetuar a alteração à conexão.

Desta forma teremos o ambiente corrigido e a metadata sem erros.

Blog