Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Implementado uma rotina de gravação configurável de log para proporcionar uma análise mais adequada e clara da execução, carregamento e exceções nas rotinas de processamento de mensagens.

Com o log, será possível análisar os cenários já descritos bem como novos problemas que possam surgir no processo assíncrono de processamento de mensagens do PDV Desktop e MobShop.

Para o TaskManager responsável por executar a fila de mensagens, foi desenvolvido um Plugin para persistir os logs de cada execução e de cada mensagem, ficando com a estrutura similar à:

Image Added

Para o Financeiro, também foi adicionado diversos logs por toda à extensão do processo específico de processamento de Pagamentos, ficando similar à:

Image Added


Totvs custom tabs box
tabsPasso 01, Passo 02, Passo 03, Passo 04TaskManager Configuração, TaskManager Instalação, TaskManager Exemplo, Financeiro Configuração, Financeiro Exemplo
idspasso1,passo2,passo3,passo4,passo5

Detalhes

Totvs custom tabs box items
defaultyes
referenciapasso1

Para realizar a configuração para uso do log Plugin, é necessário acessar o site Monitoramento e efetuar o login:

Image Added

Na tela inicial, selecionar e clicar no botão 5000, referente a interface de configuração do log do TaskManager, conforme:

Image Added

Acessar também o menu de configuração e verificar o nível de log:

Image Added

Image Added

O campo Ativo deve estar com o valor 1 (ligado) e campo LogLevel com valor diferente de 0:

Image Added

Totvs custom tabs box items
defaultno
referenciapasso2

Após rodar o instalador da Fila, deve-se conferir o arquivo spf.exe.config:

Image Added

Verificar se existe a chave "Integracao.ConnectionString" e caso não existir, criar manualmente conforme o exemplo:

Image Added

Verificar a existência do arquivo "Plugin.Spf.LogIntegracao.dll", que é o próprio Plugin:

Image Added

Na ausência do Plugin no diretório de instalação, entrar em contato com time de produto.

OBS: O diretório de instalação pode variar dependendo do ambiente e apenas a existência do Plugin no diretório Queue não significa que o log será gravado, sendo necessário configurar.

Totvs custom tabs box items
defaultno
referenciapasso3

Após ativar o log do TaskManager por um período de tempo, para consultar os logs recomenda-se utilizar o ObjectID da mensagem e data de processamento:

Abaixo um exemplo de consulta, informando o ObjectID da mensagem e o período do intervalo, mostrando que a mesma foi processada com erro.

Image Added

Bloco de código
languagesql
firstline1
titleconsulta.sql
linenumberstrue
USE rentech
GO

SELECT
	*
-- TipoModulo, [Local], Mensagem, Creation
FROM Rentech..LogIntegracao (nolock) 
WHERE DataHora >= 'DATAINICIO' AND DataHora < 'DATAFIM' AND
TipoModulo = 5000 AND
Mensagem LIKE '%OBJECTID-MENSAGEM%'

No exemplo acima o log retorna foi o seguinte:

[MessageManager] MensagemID: b7cf87ff-dc49-4c1d-84f1-2aa8fdaed03e Falha na execução. Exception: Exception has been thrown by the target of an invocation. | Error ocurred. | Error ocurred. | The type initializer for Rentech.Framework.Base.Functions threw an exception. | The type initializer for Rentech.Framework.Base.Functions threw an exception. | System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The type initializer for Rentech.Framework.Base.Functions threw an exception. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.TypeInitializationException: The type initializer for Rentech.Framework.Base.Functions threw an exception. ----> System.UnauthorizedAccessException: Access to the path Global\Mutex is denied. at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) at System.Threading.Mutex.MutexTryCodeHelper.MutexTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.Mutex.CreateMutexWithGuaranteedCleanup(Boolean initiallyOwned, String name, Boolean& createdNew, SECURITY_ATTRIBUTES secAttrs) at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name, Boolean& createdNew, MutexSecurity mutexSecurity) at System.Threading.Mutex..ctor(Boolean initiallyOwned, String name) at Rentech.Framework.Base.Functions..cctor() --- End of inner ExceptionDetail...). | System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The type initializer for Rentech.Framework.Base.Functions threw an exception. (Fault Detail is equal to An ExceptionDetail, likely created by IncludeExceptionDetailInFaults=true, whose value is: System.TypeInitializationException: The type initializer for Rentech.Framework.Base.Functions threw an exception. ----> System.UnauthorizedAccessException: Access to the path.

Demonstrando uma possível falha de permissão.

Totvs custom tabs box items
defaultno
referenciapasso4

Para realizar a configuração para uso do log no processamento dos pagamentos do Financeiro, é necessário acessar o site Monitoramento e efetuar o login:

Image Added

Na tela inicial, selecionar e clicar no botão 2000, referente a interface de configuração do log do Financeiro, conforme:

Image Added

Acessar também o menu de configuração e verificar o nível de log:

Image Added

Image Added

O campo Ativo deve estar com o valor 1 (ligado) e campo LogLevel com valor diferente de 0:

Image Added

Totvs custom tabs box items
defaultno
referenciapasso5

Após ativar o log do Financeiro por um período de tempo, para consultar os logs recomenda-se utilizar o ObjectID da operação financeiro, gerado nos clientes PDV Desktop e Mobshop:

Abaixo um exemplo de consulta, informando o ObjectID da operação financeira.

Image Added

Bloco de código
languagesql
firstline1
titleconsulta.sql
linenumberstrue
USE rentech
GO

SELECT
	*
-- OwnerId, IdOperacao, DataOperacao, Creation, Observacao
FROM [ModuloFinanceiro]..[Financeiro_LogOperacao] (nolock) 
WHERE IdOperacao = 'ID-OPERACAO-FINANCEIRA'
ORDER BY Creation


OBS: Vale lembrar que, caso ocorra alguma exceção no processamento da mensagem do financeiro, o rollback realizado nos dados também afetará a gravação dos logs, pois ambos estarão na mesma transação!


04. DEMAIS INFORMAÇÕES

O modelo de Plugin implementado no TaskManager utiliza o MEF, muito interessante para baixo acoplamento e controle de dependências.


Card documentos
InformacaoUse esse box para destacar informações relevantes e/ou de destaqueOs logs quando ativados, irão gravar toda execução. Dessa forma não mantenha ligado direto, pois a quantidade de informações é enorme e desnecessária. Habilite o log por um período, deixe coletar, desligue a integração e análise os dados.
TituloIMPORTANTE!

...

Templatedocumentos


HTML
<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>