| Produto: | |
|---|---|
| Linha de Produto: | |
| Segmento: | |
| Tipo de Documento: | Manutenção |
| Módulo: | AcruxMonitorService |
| Caminho: | |
| Função: | ExportarXMLNFe |
| País: | Brasil |
| Ticket: | 24781422 |
| Requisito/Story/Issue (informe o requisito relacionado) : |
Durante a execução da rotina de exportação de XMLs de documentos fiscais (NFC-e), foi identificado que o processo realizava a leitura em massa dos registros da tabela TB_DOCTONFEXML, carregando todos os XMLs pendentes de uma única vez na sessão. Esse comportamento gerava alto consumo de recursos de UNDO e memória. Os erros ocorriam principalmente porque o banco de dados precisava manter versões antigas dos LOBs (XMLs) em memória até o fim da transação, o que saturava o UNDO e o espaço de LOB segment, e em alguns cenários provocava falhas como:
ORA-01555: snapshot too old: rollback segment number ... too small
ORA-22924: snapshot too old
ORA-01691: unable to extend lob segment ... in tablespace TSD_CONSINCOMONITOR
Alto volume de vendas e integração de XMLs na pasta backup para documentos fiscais NFC-e.
Foi realizado um ajuste na rotina de exportação para que o processamento fosse documento a documento, ao invés de em massa. As principais alterações técnicas foram:
Leitura individualizada dos XMLs: O sistema agora busca e trata apenas o XML do documento atual em cada iteração do loop, evitando carregar um grande volume de dados de uma só vez.
Controle de sessão otimizado: Após o processamento de cada documento, a conexão é liberada e o contexto de LOB é fechado, garantindo que o banco descarte as referências antigas e libere memória e UNDO imediatamente.
Redução da permanência de LOBs abertos: As operações com colunas CLOB foram ajustadas para evitar manter o LOB aberto por longos períodos — fator que antes contribuía diretamente para os erros de ORA-01555 snapshot too old.
Se estiver na versão 25.08, atualize para o service pack 25.11.001 ou superior.