Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Correção de layout , formatação do documento

...

Portuguese

Pagetitle
Melhoria - Alteração no tratamento da ocorrência "Memory full"
Melhoria - Alteração no tratamento da ocorrência "Memory full"

Melhoria - Alteração no tratamento da ocorrência "Memory full"

A

partir

da

build

atual,

as

ocorrências

críticas

de

falha

de

alocação

de

memória

são

registradas

no

log

de

console

da

aplicação

com

informações

adicionais

e

com

a

mensagem

"Memory

Allocation

Failure".


AbrangênciaERP 10

Situação

Nas builds anteriores do TOTVS Application Server, uma falha de alocação de memória no servidor poderia gerar mensagens e ocorrências críticas no TOTVS Application Server, tais como: "Access Violation", "String index out of bounds" e "Memory full". Observe os exemplos:

 //===================================================== Exception code: C0000005 ACCESS_VIOLATION Fault address: 0A901BFD 01:00000BFD C:\Mp8\bin_081215p_ftp\server\SHSMP.DLL Impossivel Ler IMAGEHLP.DLL Call stack: Address Frame Logical addr Module //=====================================================

/*-------------------------------------------------------ERRO

THREAD

([121212],

Julio,

TEC-AUTOQUAD)

29/01/2009

09:51:12

Stack

:Memory

full(tStrRef)

in

file

c:\advtec9\lib_base\stringz.hpp

at

line

140

on

PL169HIST(PLSA169.PRW)

05/01/2007

line

:

3463(...)

/*-------------------------------------------------------ERRO

THREAD

([121212],

Julio,

TEC-AUTOQUAD)

30/01/2009

09:51:13

Stack

:string

index

out

of

bounds

in

file

c:\advtec9\lib_base\stringz.hpp

at

line

671

on

MSAPP:RUNAPP(APLIB000.PRW)

30/10/2006

line

:

671(...)

 


Ocorrência

Após uma falha de alocação de memória, a aplicação pode tornar-se instável, congelar e apresentar comportamentos inesperados, sendo necessário parar e reiniciar o sistema. Na maioria dos casos, a falha está relacionado à disponibilidade de memória na máquina onde o TOTVS Application Server está sendo executado ou ao limite de memória alocada pelo TOTVS Application Server.

Melhoria e alterações  de comportamento

A partir da build atual, o tratamento de alocação de memória foi revisado e alterado para gerar uma ocorrência inicial única, entitulada como "Memory Allocation Failure", com informações adicionais sobre a operação interna que apresentou falha, facilitando o diagnóstico deste tipo de situação.

A seguir, observe as novas mensagens que serão apresentadas no console do TOTVS Application Server:

[FATAL][SERVER] [THROW] Memory Allocation Failure ( 38504 bytes ) at file C:\AdvTec9\interfacetst\apwinnt.cpp line 818

Esta mensagem informará o tamanho do bloco de memória solicitado que falhou a alocação e qual a rotina interna que disparou a ocorrência de falha. No entanto, mesmo com a nova mensagem unificada, após haver uma ocorrência desta natureza reproduzida e registrada no log de console, o comportamento do TOTVS Application Server poderá apresentar ocorrências de Access Violation e outras críticas, porém com o registro dessa mensagem, é possível verificar no log de console que a ocorrência precursora das demais foi efetivamente uma falha de alocação de memória.

Como a ocorrência de falha de locação de memória pode gerar outros efeitos colaterais, inclusive impedir o tratamento de uma ocorrência prévia de falha, foi implementada uma proteção na rotina de tratamento de falha de execução, para se durante a execução das rotinas internas de recuperação de erro e geração de log, ocorrer uma falha de alocação de memória, que impeça o erro de ser recuperado, o TOTVS Application Server vai registrar no console uma mensagem de falha crítica de alocação , vide abaixo. Após apresentar esta mensagem, o TOTVS Application Server será finalizado automaticamente, encerrando todos os processos em execução e o serviço.

[FATAL][SERVER] APPLICATION SHUTDOWN DUE UNRECOVERABLE MEMORY ALLOCATION FAILURE

Neste caso, e exclusivamente neste caso, é preferível que o serviço do TOTVS Application Server finalize, pois em situações como estas o TOTVS Application Server pode apresentar travamento de processos, que potencialmente prejudica  a operação do ambiente, até que seja perceptível que um ou mais usuários estão com as aplicações  sem responder.
 

Informações adicionais