Páginas filhas
  • DFWKTOOLS-263 DT Geração LOG/DEBUG para todas threads executadas


01. DADOS GERAIS

Linha de Produto:Logix
Segmento:Tecnologia
Módulo:Framework
Função:Geração LOG/DEBUG
Requisito/Story/Issue (informe o requisito relacionado) :DFWKTOOLS-263


02. SITUAÇÃO/REQUISITO

Quando uma execução em modo DEBUG é acionada a partir do menu, caso a aplicação execute outra aplicação em modo JOB ou ONLINE, de modo que esta execução seja realizada em uma nova Thread no AppServer, a geração de LOGs era comprometida. Isso prejudicava a geração do conteúdo do LOG de execução destas novas aplicações juntamente com o LOG/DEBUG da aplicação inicial, pois não eram gerados. Consequentemente esse comportamento dificultava a rastreabilidade de informações das execuções destas demais aplicações.

03. SOLUÇÃO

Pasta de geração de arquivos LOG/DEBUG

Toda execução de programa em modo DEBUG irá gerar arquivos de LOG distintos para cada nova Thread iniciada no AppServer a partir da rotina inicial. A pasta de geração dos arquivos de LOG/DEBUG no servidor mudou e agora os arquivos de LOG são gerados no disco do AppServer respeitando o seguinte padrão de pastas:

Execução em modo DEBUG ou FRAMEWORK    →    [ ROOTPATH ] / temp / debug /  [ login_usuario ] / [ pasta_logs ]

Execução em modo PROFILER                             →    [ ROOTPATH ] / temp / profiler/  [ login_usuario ] / [ pasta_logs ]


Onde:

       ROOTPATH     é a chave de configuração de cada ambiente no AppServer com uma pasta raiz. A partir dessa pasta o sistema irá fazer uso de pastas relativas.

       login_usuario é o login do usuário Logix que realizou a execução em modo DEBUG/PROFILER.

       pasta_logs      é o nome da pasta onde serão armazenados os arquivos contendo o LOG das execuções em modo DEBUG/PROFILER realizadas a partir da aplicação principal


Rotinas ajustadas para respeitar a geração de LOG/DEBUG por pasta no AppServer

Existem algumas formas de iniciar a execução de rotinas a partir do Logix que foram revisadas e devidamente ajustadas para que todas respeitem uma única forma de geração de arquivos de LOG/DEBUG. Isso é realizado com base no padrão de pasta de destino no disco do Servidor de Aplicação (AppServer) e também envolvendo o nome dos arquivos de LOG envolvidos. Estas alterações envolveram a execução de rotinas/programas nos seguintes pontos:


A execução de programa a partir do menu, utilizando um dos atalhos disponíveis.

(seleção) Para informações a respeito de cada modo de execução, acesse LGX - Chaves de configuração no arquivo de Profile no tópico Geração de Log com Debug.

Qualquer outra rotina/programa executada a partir da aplicação acionada a partir de um atalho do menu irá gerar arquivos de LOG na mesma pasta de destino, gerando sempre um novo arquivo de LOG pra execuções realizadas a partir de nova Thread gerada no AppServer.


Execução de requisições APIs REST / SOAP

Quando a chave de profile logix.debug estiver configurada com valor correspondente a um dos modos de DEBUG ativo, no ato da execução de uma requisição REST/SOAP no AppServer, serão gerados os arquivos de LOG na pasta do AppServer correspondente ao modo de execução DEBUG indicado. 

Execuções manuais de gatilhos do Agendador de Tarefas

Ao realizar a execução manual de gatilhos do Agendador de Tarefas a partir do botão Processar no programa JOB0003 (Cadastro de Gatilhos), caso selecione a execução em modo DEBUG, a geração dos LOGs também foi devidamente revisada para respeitar o mesmo padrão de geração de LOGs


Nomes dos arquivos de LOG 

O nome dos arquivos de LOG serão gerados seguindo a seguinte padronização:

Execução em modo DEBUG ou FRAMEWORK    →    [ sequencia] _debug_thread_[ id_thread ]_[ rotina ]

Execução em modo PROFILER                             →    [ sequencia] _profiler_thread_[ id_thread ]_[ rotina ]


Onde:

       sequencia  é um código numérico de 5 dígitos gerado de forma sequencial crescente, iniciando de 00000 e incrementado um a um a cada nova thread criada para execução de outra rotina/programa a partir da rotina principal.

       id_thread   é o código gerado pelo AppServer para cada nova thread iniciada para processamento de alguma rotina/aplicação. 

       rotina         é o nome do fonte compilado no RPO que possui a função principal da aplicação que foi executada na thread do AppServer. Este nome de rotina será utilizado para registrar informações no cabeçalho inicial do arquivo de LOG, contendo versão e data da rotina.


Exemplo de pasta com geração de arquivos de LOG do programa MAN10021 (Cadastro de Itens)

Neste exemplo percebe-se que o programa MAN10021 é a primeira aplicação executada (programa principal), onde a sequência do arquivo de LOG é 00000 (zero) e os demais arquivos de LOG possuem sequências subsequentes 00001, 00002 e 00003, indicando que a partir da execução do programa principal MAN10021 foram acionados os programas SUP7750, WMS6173 e SUP2240 e novas threads geradas no AppServer. 

Para o usuário a geração de novas threads no AppServer é imperceptível, mas na geração de arquivos de LOG isso indica um processo totalmente independente e que utiliza uma conexão de banco de dados diferente da aplicação principal.


04. DEMAIS INFORMAÇÕES


As execuções em modo PROFILER são geradas e mantidas apenas no servidor, ou seja, por mais que o usuário selecione a opção de execução em modo PROFILER a partir do menu, o servidor gera as informações de PROFILER apenas após o término da execução da rotina/aplicação e isso pode levar um certo tempo, dependendo do volume de processamento executado. Com isso os arquivos de LOG gerados em modo PROFILER não são transferidos pra máquina local do usuário após a finalização da aplicação no menu.


IMPORTANTE!

Disponível a partir do pacote oficial 12.1.28 ou Framework Fix 12.1.28.(fix01)


05. ASSUNTOS RELACIONADOS