Árvore de páginas

Versões comparadas

Chave

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

...

Expandir
titleTime-out occurred while waiting for buffer latch type 4 for page

Explicação

Este erro ocorre quando o sistema tentar colocar um valor em campo maior do que seu tamanho suporta.

  • Verifique as variáveis/campos que atribuem o valor ao campo do erro e quais suas rotinas/módulos detentores
  • Verifique se há customizações
Dica
titleComplemento

Ticket de exemplo: #17848020

Expandir
titleVer erro
Bloco de código
firstline1
titleTrecho
linenumberstrue
THREAD ERROR ([1328], NOVA PIRATININGA, IGOR-CONTABILID)   18/08/2023 12:49:02
Data width error - Field: ADB_QTDEMP Value: 10023570.000000 on MAAVALSC6(FATXFUN.PRX) 29/08/2022 18:15:53

[TOTVS build: 7.00.210324P-20230228]
Called from A410GRAVA(MATN410.PRW) 30/11/2022 15:39:57 line : 1307
Called from A410INCLUI(MATA410.PRX) 26/09/2022 15:59:37 line : 1317
Called from FT400PV(FATA400.PRX) 27/01/2022 15:20:43 line : 1921
Called from FT400REMES(FATA400.PRX) 27/01/2022 15:20:43 line : 1585
Called from FWFORMBROWSE:EXECUTE(FWFORMBROWSE.PRW) 04/04/2023 15:05:10 line : 1147
Called from {|| OSELF:EXECUTE("FT400REMES",              6,             0,"REMESSA",              9,"","REMESSA","",               9) }(FWFORMBROWSE.PRW) 04/04/2023 15:05:10 line : 579
Called from ::MSDIALOG:ACTIVATE
Called from FWMBROWSE:ACTIVATE(FWMBROWSE.PRW) 04/04/2023 15:05:10 line : 700
Called from FWMBROWSE(MSLIB.PRW) 04/04/2023 15:05:10 line : 10499
Called from MBROWSE(MSLIB.PRW) 04/04/2023 15:05:10 line : 170
Called from FATA400(FATA400.PRX) 27/01/2022 15:20:43 line : 91
Called from __EXECUTE(APLIB090.PRW) 04/04/2023 15:05:08 line : 721
Called from MDIEXECUTE(APLIB260.PRW) 04/04/2023 15:05:08 line : 924
Expandir
titleAnálise realizada

1. No cabeçalho do erro, podemos ver qual o campo que o sistema está tentando inserir valor e podemos ver o valor inserido, sabendo assim, seu tamanho:

Bloco de código
firstline1
titleTrecho
linenumberstrue
Data width error - Field: ADB_QTDEMP Value: 10023570.000000 on MAAVALSC6(FATXFUN.PRX) 29/08/2022 18:15:53

O campo está tentando inserir um campo da ordem de: 15 casas totais / 6 casas decimais após a vírgula.

OBSERVAÇÃO: Para compor o valor total se conta o ponto flutuante (o que separa as casas inteiras das casas decimais)


2. Há dois caminhos para seguir, o valor está errado e precisamos entender a origem dele, isto é, as variáveis/campos que injetam valor do erro nesse campo "ADB_QTDEMP" ou, simplesmente aumentar o campo no configurador pois pode estar correto (depende da resposta do cliente) para que o campo suporte o tamanho e não ofereça mais erro.


2.1 - Estudar origem (Pequisar no Azure e analisar)


2.2 - Aumentar campo para que o erro não ocorra:

Image Added

Expandir
titleConclusão do caso

( . . . )

Expandir
titleTime-out occurred while waiting for buffer latch type 4 for page

Explicação

Este erro ocorre quando o sistema aguarda por muito tempo na tentativa de executar alguma ação no banco de dados, devido ao tempo de espera o sistema derruba a conexão. Pontos de análise:

  • Verifique se os artefatos (Binário, Lib, DBAccess) do cliente estão atualizados;
  • Verifique se houve alguma alteração no fonte que gera o erro (Na linha ou função que gera o erro);
  • Verifique com o cliente se o erro ocorre exclusivamente em uma rotina ou se ocorre em várias.  
Dica
titleComplemento

Ticket de exemplo: #17701851

Expandir
titleVer erro
Bloco de código
firstline1
titleTrecho
linenumberstrue
THREAD ERROR ([7656], FATURAMENTO, DESKTOP-U30GRFJ)   02/08/2023 13:11:56
[FWCustomMetrics:InsertMetric] TCSQLError(): Error : 845 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Time-out occurred while waiting for buffer latch type 4 for page (1:11814786), database ID 5.( From tDBServer::ROP_SQLEXEC )

Thread ID [6120]              User [FATURAMENTO] IO [4611]             Tables [139]       MaxTables [140]              Comment [MATA460A - TCPIP - ThreadID(7656)]   SP [ ]     Traced [No]        SQLReplay [No] InTran [Yes]       DBEnv [MSSQL/BT9QI1]             DBThread [(SPID 73,74)]               Started [02/08/2023 13:06:05]   IP [127.0.0.1:55612]        IDLE [ ]                InTransact [306 s.]          Memory [0]       Running [ROP_SQLEXEC for 300 s.]          RCV [492780]     SND [1513639]                TCBuild [20191119-20200706]    TCVersion [19.2.1.1]       ARCH [64]           OS [WINDOWS] BUILD [RELEASE]             

INSERT INTO MP_CUSTOM_METRICS_EXP (MP_FEDERID, MP_MODULO, MP_ROTINA, MP_USER, MP_SUBROT, MP_IDMETRI, MP_VALUE, MP_LAPTIME, MP_DTCREAT, MP_DTSEND, MP_TPMETRI) VALUES ('61468401000165', 5, 'MATA461', '000190', 'MATA461', 'faturamento-protheus_media-itens-nota-saida_average', '3', 0, '20230802', '20230831', 'AVG') on INSERTMETRIC(FWCUSTOMMETRICS.TLPP) 30/09/2021 11:46:45 line : 472

[TOTVS build: 7.00.191205P-20200903]
Called from FWCUSTOMMETRICS:SETAVERAGEMETRIC(FWCUSTOMMETRICS.TLPP) 30/09/2021 11:46:45 line : 129
Called from MAPVLNFS2(MATA461.PRX) 19/10/2021 18:21:02 line : 4268
Called from MAPVLNFS(MATA461.PRX) 19/10/2021 18:21:02 line : 1807
Called from MA460PROC(MATA461.PRX) 19/10/2021 18:21:02 line : 1468
Called from {|LEND| MA460PROC(CALIAS, CSERIE, MV_PAR01==1, MV_PAR02==1, MV_PAR03==1, MV_PAR04==1, MV_PAR05==1, MV_PAR07, MV_PAR08, MV_PAR09, MV_PAR10, MV_PAR11==1, MV_PAR12, MV_PAR13, MV_PAR14, MV_PAR15==1, MV_PAR16==2, C460COND,@LEND,DDATAMOE)}(MATA461.PRX) 19/10/2021 18:21:02 line : 741
Called from { || FWSETSHOWKEYS( .F. ), EVAL( BACTION, @LEND ),LEND := .T. , FWSETSHOWKEYS( .T. ), ODLGMODAL:DEACTIVATE() }(MSPROCES.PRW) 30/09/2021 11:46:48 line : 104
Called from {|SELF|(EVAL(OSELF:BINIT))}(FWDIALOGMODAL.PRW) 30/09/2021 11:46:45 line : 462
Called from ::MSDIALOG:ACTIVATE
Called from FWDIALOGMODAL:ACTIVATE(FWDIALOGMODAL.PRW) 30/09/2021 11:46:45 line : 462
Called from PROCESSA(MSPROCES.PRW) 30/09/2021 11:46:48 line : 105
Called from MA460NOTA(MATA461.PRX) 19/10/2021 18:21:02 line : 741
Called from FWFORMBROWSE:EXECUTE(FWFORMBROWSE.PRW) 30/09/2021 11:46:48 line : 1144
Called from { || OSELF:EXECUTE("MA460NOTA",              4,             0,"PREP. DOC'S",              3,"","PREP. DOC'S","",               3) }(FWFORMBROWSE.PRW) 30/09/2021 11:46:48 line : 578
Called from ::MSDIALOG:ACTIVATE
Called from FWMBROWSE:ACTIVATE(FWMBROWSE.PRW) 30/09/2021 11:46:48 line : 697
Called from FWMARKBROWSE:ACTIVATE(FWMARKBROWSE.PRW) 30/09/2021 11:46:48 line : 267
Called from FWMARKBROWSE(MSLIB.PRW) 30/09/2021 11:46:48 line : 11097
Called from MARKBROWSE(MSLIB.PRW) 30/09/2021 11:46:48 line : 6123
Called from MARKBROW(MSLIB.PRW) 30/09/2021 11:46:48 line : 6103
Called from MATA460A(MATA461.PRX) 19/10/2021 18:21:02 line : 478
Called from __EXECUTE(APLIB090.PRW) 30/09/2021 11:46:45 line : 721
Called from MDIEXECUTE(APLIB260.PRW) 30/09/2021 11:46:45 line : 924
Expandir
titleAnálise realizada

1. Na pilha de chamadas, a última função executada é do MATA461, o que indica que o processo gerador do erro foi no módulo de faturamento:

Bloco de código
firstline1
titleTrecho
linenumberstrue
Called from MAPVLNFS2(MATA461.PRX) 19/10/2021 18:21:02 line : 4268

Sendo assim, a primeira análise é do módulo de Faturamento.


2. Verifique qual tabela o sistema está tentando acessar, pode ser verificado pela Query apresentada no cabeçalho do erro:

Bloco de código
firstline1
titleTrecho
linenumberstrue
INSERT INTO MP_CUSTOM_METRICS_EXP (MP_FEDERID, MP_MODULO, MP_ROTINA, MP_USER, MP_SUBROT, MP_IDMETRI, MP_VALUE, MP_LAPTIME, MP_DTCREAT, MP_DTSEND, MP_TPMETRI) VALUES ('61468401000165', 5, 'MATA461', '000190', 'MATA461', 'faturamento-protheus_media-itens-nota-saida_average', '3', 0, '20230802', '20230831', 'AVG')

Neste caso, o sistema tenta realizar o Insert na tabela "MP" e como não consegue, excede o limite de tempo e derruba o sistema.


3. Validamos que o banco de dados do cliente estava em Cloud.

Expandir
titleConclusão do caso

O time de Framework nos informou que este erro está relacionado ao banco de dados do cliente, indicando a documentação: A time-out occurred while waiting for buffer latch -- type 4

Como o cliente era Cloud, o banco de dados dele estava aqui na TOTVS, então acionamos a equipe: SQUAD CLOUD DBA PROTHEUS

Eles realizaram o ajuste do banco de dados do cliente e o erro deixou de ser apresentado.

...