segunda-feira, 27 de agosto de 2018

Flow ID, Instance ID e ECID

Existem alguns IDs que são gerados ao executar um composite, que nos ajuda a monitorar o mesmo. Neste post, vou explicar sobre "Flow ID", "Instance ID" e "ECID".

Flow ID - Id único gerado para um fluxo de uma instância, com este id, mais o ECID, o SOA Suite gera rastreabilidade nas tabelas com o owner <PREFIXO>_SOAINFRA.

Instance ID - ID gerado para cada instância de composite e component.

ECID (Execution Context Id) - É global, um identificador único associado a uma execução de uma determinada requisição.
É utilizado para correlacionar mensagens em arquivo de log e nos fluxos de instância do composite. É passado via header  de um composite para outro, e de um componente para outro.


Vamos ver um exemplo na pratica. Para o fluxo de execução abaixo, veremos que só teremos um "ECID", dois "FLow ID", pois temos execução de dois composites, e um "Instance ID" para cada component.

 

Ao executarmos o fluxo, acessar a aba "Flow Instances" e consultarmos as instâncias recentes, vemos que o "Flow ID" é a chave para abrir a janela do fluxo de execução.

Click em "Show instance IDs" para exibir o id de cada componente.


Click em "Show XML" e irá encontrar o ECID.


Se executar a consulta das ultimas instâncias do outro composite, vemos um "Flow ID" diferente, mas que referencia os mesmos "Instance IDs" e o mesmo "ECID" do composite que fez a chamada deste.



Com esses id's conseguimos rastrear/monitorar as instâncias na base de dados e arquivos de log.

Arquivo de log:


Acesse o banco do owner <PREFIXO>_SOAINFRA.

Tabela SCA_FLOW_INSTANCE


Tabela CUBE_INSTANCE

Tabela AUDIT_TRAIL


Na versão 12c não é mais possível extrair o xml da coluna log da tabela audit_trail via sql, mas existem APIs JAVA do SOA Suite para acesso desta informação.
 

Nenhum comentário:

Postar um comentário