Migração Protheus+Oracle para Protheus+Postgres

Bom dia. Estamos efetuando um testa para mudança de banco de dados, oracle para postgres. Ao acessar o sistema, efetuar alguma vendas tudo funciona perfeitamente, mas vamos tentar fazer uma viradade de versão 25 para 27, ai começou o problema, o postgres começou a apresentar o erro "Out of memory while reading tuples", e este erro somente acontece na consulta via dbaccess, se consulta via qualquer outro client, pgsql, e mesmo o odbc no linux eu consigo retornar qualquer dado, mesmo fazendo um select full nas tabelas.

Alguem já passou por isso ou conheço este problema?

Já tentei a paginação via ODBC - não funcionou Limitar o fetch no ODBC - não funcionou Aumentei o locks do postgres - não funcionou

Error log gerado:

THREAD ERROR ([13928], Administrator, SRV-PROT-COMAND) 26/03/2021 12:25:17 : Error : 4 (HY001) (RC=-1) - Out of memory while reading tuples.; memory allocation error??? ( From tPostgresConnection::GetQueryFile ) Thread ID [1918] User [Administrator] IO [2532] Tables [22] MaxTables [42] Comment [] SP [ ] Traced [No] SQLReplay [No] InTran [No] DBEnv [POSTGRES/COMANDO] DBThread [(ID 2235)] Started [26/03/2021 12:23:19] IP [192.168.0.205:60000] IDLE [ ] InTransact [ ] Memory [0] Running [ROPQUERY for 0 s.] RCV [194413271] SND [1025276] TCBuild [20200606-20201110] TCVersion [20.1.1.2] ARCH [64] OS [LINUX] BUILD [RELEASE]SELECT PAT.*,COALESCE(NEWSX.R_E_C_N_O,0) as NEWRECNO FROM SX3 PAT LEFT JOIN SX3010 NEWSX ON PAT.X3CAMPO=NEWSX.X3_CAMPO AND NEWSX.D_E_L_E_T=' ' AND PAT.DE_L_E_T=' ' ORDER BY PAT.X3_ARQUIVO,PAT.X3_ORDEM on UPDSX3UPD(APUPD030.PRW) 17/02/2021 17:06:01 line : 8712

[TOTVS build: 7.00.191205P-20210114] Called from UPDSX3MULT(APUPD030.PRW) 17/02/2021 17:06:01 line : 8359 Called from UPDSX3(APUPD030.PRW) 17/02/2021 17:06:01 line : 7896 Called from _UPDUPDATE(APUPD030.PRW) 17/02/2021 17:06:01 line : 553 Called from UPDUPDATE(APUPD030.PRW) 17/02/2021 17:06:01 line : 55 Called from { ||(OWIZARD:OCANCEL:DISABLE(),OWIZARD:OCANCEL:HIDE(),OWIZARD:ONEXT:DISABLE(),OWIZARD:OBACK:DISABLE(),IF(!LUPDATEPACK,UPDUPDATE(CPREFDICT,CPREFHELP,ASIZESTATS,ALISTGRP),UPDPACK(OLISTPACK,OWIZARD,OWIZARD:NPANEL,OAPPLY)),EVAL(OWIZARD:ONEXT:BACTION))}(UPDDISTR.PRW) 17/02/2021 17:06:01 line : 687 Called from { || IF(EVAL(SELF:ACBVALID[SELF:NPANEL,2]),(SELF:NPANEL+=1,SELF:NAVIGATOR(2),EVAL(SELF:ACBEXECUTE[SELF:NPANEL])),)}(APWIZARD.PRW) 17/02/2021 17:06:11 line : 236 Called from ::MSDIALOG:ACTIVATE Called from FWDIALOGMODAL:ACTIVATE(FWDIALOGMODAL.PRW) 17/02/2021 17:06:00 line : 462 Called from APWIZARD:ACTIVATE(APWIZARD.PRW) 17/02/2021 17:06:11 line : 328 Called from APUPDATE(UPDDISTR.PRW) 17/02/2021 17:06:01 line : 756 Called from { || ( OAPP:LFLAT:= .F. , APUPDATE(PARAMETER01), FINAL(FWI18NLANG("UPDDISTR","STR0500",196)) )}(UPDDISTR.PRW) 17/02/2021 17:06:01 line : 71 Called from { || ODESKTOP:ACTIVATE(), ODESKTOP:HIDELOGIN(), ( OAPP:OMSGBAR := ODESKTOP:GETMSGBAR() ), SELF:ADDMSGITEM(), EVAL(SELF:BMAININIT,ODESKTOP)}(FWAPP.PRW) 17/02/2021 17:06:11 line : 701 Called from ::TWINDOW:ACTIVATE Called from MSAPP:ACTIVATE(FWAPP.PRW) 17/02/2021 17:06:11 line : 757 Called from UPDDISTR(UPDDISTR.PRW) 17/02/2021 17:06:01 line : 76

Sistema Operacional:

Linux suporte 5.4.0-70-generic #78-Ubuntu SMP Fri Mar 19 13:29:52 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

Memoria - 64GB

Postgres - 13

ODBC - unixODBC

Agradeço qualquer ajuda.

Obrigado.

compartilhar
  • Dr. nunca usei esse banco, mas estranho esse erro que ele retorna, "Out of memory while reading tuples", ele informa que não consegue acessar, por que não tem memória suficiente para ler um registro. Já verificou o tamanhos em MB que as tabelas do Postgres suporta e quantidade de registros. Por que toda banco tem essas limitações. Pode ser que esteja ocorrendo isso. Tomara que não... Ou outra opção também é verificar a capacidade do DBAcess, sem tem um limite de dados...

    Clodoaldo Ribeiro   3 weeks ago
  • Boa tarde Clodoaldo. O banco não tem limitações, qualquer coisa realizada onde eu não utilizo o odbc funciona perfeitamente, inclusive eu fiz a importação utilizando o dbtools da totvs e com qualquer quantidade de processo e rodou sem problemas nenhum, mas quando vou fazer a virada de versão é apresentado este erro. Ate agora não consegui resolver o problema.

    Pablo   2 weeks ago
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

1 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags dbaccess postgres ou faça a sua própria pergunta.