Jump to content

2 Dia do ACBr

O Dia da Automação Comercial está chegando!
Inscreva-se

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

lucasherrera

Out of Memory ao gerar Bloco X de Estoque

Recommended Posts

Bom dia a todos,

 

Estou fazendo a adaptação do meu sistema para conseguir gerar o arquivo do Bloco X referente ao estoque, mas o componente está retornando erro de Out of Memory quando eu tento gerar um arquivo com muitos produtos. O banco que eu estava gerando estava com 40 mil produtos, mas pelos meus testes esse erro já acontece quando temos em torno de 4 mil produtos.

Eu alterei o componente para que ele fosse gravando o Xml em partes e tive sucesso nisso, mas não consegui assinar esse XML, ele dava a mensagem "erro ao carregar Xml", Pra homologação eu não devo ter problemas com isso porque vou levar um banco de dados com uma quantidade bem menor de produtos. Mas creio que possamos ter problemas quando isso entrar em produção porque os clientes costumam ter bancos de dados bem grandes.

 

Obrigado

  • Like 1

Share this post


Link to post
Share on other sites

Bom dia

Temos um relato também no fórum privado do SAC sobre o problema mencionado!

ainda não houve tempo hábil para efetuar devidos testes e implementações para sanar isso, tão logo consigamos postamos a solução!


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar  telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites

Boa tarde,

Não tenho acesso ao SAC e estou tendo problemas de "Out of memory" no Estoque do Bloco X.

O componente consegue carregar mais de 7000 itens do meu cadastro mas ao dar o comando ACBrBlocoX1.Estoque.SaveToFile(arquivo) o erro acontece.

Share this post


Link to post
Share on other sites

Você precisará gerar o XML de outra maneira...

O código atual, do ACBr para gerar o XML não é bom... (ele á baseado em concatenação de String)

Em todo caso, será praticamente impossível, transmitir um XML de vários Megabytes, para um WebService...

 


Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites
Em 01/11/2016 at 15:41, infoel disse:

Boa tarde,

Não tenho acesso ao SAC e estou tendo problemas de "Out of memory" no Estoque do Bloco X.

O componente consegue carregar mais de 7000 itens do meu cadastro mas ao dar o comando ACBrBlocoX1.Estoque.SaveToFile(arquivo) o erro acontece.

Boa noite! conseguiu resolver ? Também estou tendo o mesmo problema com apenas 4931 produtos na tabela.

Share this post


Link to post
Share on other sites

Vc ja tentou utilizar o FastMM4 para maximizar a alocação de memória de sua aplicação? Sempre quando tenho estes gargalos de memória apelo para ele


Jefferson Lupinacci
Analista Desenvolvedor Java Sr. em Zara.com - Inditex - Departamento de Logística e Transporte Global - A Coruña / Espanha

[email protected] / [email protected]
Linkedin; https://www.linkedin.com/in/jeffersonlupinacci/

 

Share this post


Link to post
Share on other sites

Bom dia galera,

Estou conseguindo gerar o Estoque do Bloco X com até +- 40 mil itens, porém após isso gera erro( out of memory) ao Salvar o Estoque e assinar o XML.

Alguém sabe como está o processo para correção deste problema? Ou fez de alguma outra maneira a geração do XML?

Share this post


Link to post
Share on other sites

isso tambem ocorre por exemplo quando se busca dados em uma query com muitos registros, isso e alocado na memoria do windows, e a aplicacao quando chega em uns 1.5gb +- memoria da esse erro, mesmo se seu pc tiver muito mais memoria, devido a ser uma app 32 bits.  

isso e so para explicar que (e provavavel) que se compilar o aplicativo que gera esse arquivo em 64 bits não vai da o problema. ate que se faça uma correçao no acbr, uma alternativa e criar um exe a parte so com essa parte de gerar o arquivo e compilar em 64 bits (para nao ter que converter sua aplicação inteira em 64, obviamente no seu cliente final, so ira funcionar no win 64.

 

na fiz esse teste, mas baseado no problema citado na query que na pratica e mesma coisa (alocar muita inf na memoria em um app 32bits) eu resolvi em uma aplicacao minha compilando em 64bits.

Share this post


Link to post
Share on other sites
Em 03/07/2017 at 10:25, José Carlos Buss disse:

Estou conseguindo gerar o Estoque do Bloco X com até +- 40 mil itens, porém após isso gera erro( out of memory) ao Salvar o Estoque e assinar o XML.

Convenhamos, mesmo que você gere o arquivo... como você espera subir para um WebService, um arquivo de Estoque "monstro" com 40mil itens ? 

OK.. isso não é culpa sua.. é na verdade do SEFAZ de SC, que aparentemente não pensou nesse detalhe...  (mesmo com compactação, o arquivo continuará muito grande para ser transmitido em uma requisição HTTP/POST)

  • Like 1

Consultor SAC ACBr

Daniel Simões de Almeida
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Share this post


Link to post
Share on other sites

no final das contas e mais um requisito que so gera depesas para nos desenvolvedores, e que nunca vai ser usado.

temos aqui mais de 1000 empresas com sistema rodando, em mais de 5 anos de paf, posso contar nos dedos de uma baleia, quantas vezes o menu fiscal foi acessado por um fiscal da receita.

 

clientes como lojas de sapato tem muito mais que isso, pq praticamente todo produto adquirido e um novo cadastro, supermercado nem se fala entao, passa facil dos 100 mil.

Edited by wilton_rad
  • Like 2

Share this post


Link to post
Share on other sites

Nós temos vários clientes com esse problema. Supermercados, auto-peças, Ferragens... tem muitos produtos e acabamos caindo nesse problema. Vou tentar encontrar alguma solução que consiga atrelar ao ACBr e caso conseguir posto aqui. Só acho que não é tão "incomum" assim.


Rodrigo Cantelli

Share this post


Link to post
Share on other sites

Estranho, li alguns relatos aqui nesse mesmo tópico e ninguem postou a solução.

O demo do ACBR, mudei pra 10000 e ocorre tbm, a propósito o demo não atualiza pelo trunk2, manteve-se a versão antiga, será que os fontes estão atualizando?

Como posso ver se estão atualizados?

Share this post


Link to post
Share on other sites
4 minutos atrás, Mario Inacio disse:

Bom dia.

Pode me enviar a tua pasta inteira do ACBR pra confrontar com a minha ou o demo compilado que gere acima de 10mil produtos?

é a mesma do svn


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar  telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites

Bom dia.

Consegui solucionar o erro "out of memory" utilizando o FastMM4.

Existe algum demo com a rotina de transmissão do arquivo ao Fisco?

Ou se puderem me passar parte do código

 

Share this post


Link to post
Share on other sites
2 horas atrás, Mario Inacio disse:

Bom dia.

Consegui solucionar o erro "out of memory" utilizando o FastMM4.

Existe algum demo com a rotina de transmissão do arquivo ao Fisco?

Ou se puderem me passar parte do código

 

no próprio componente já está implementado.


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar  telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites

Implementei assim:

BlocoX.SSL.SelecionarCertificado ;
BlocoX.WebServices.EnviarEstoque.XML       := conteudo;
BlocoX.WebServices.EnviarEstoque.XMLZipado := EncodeBase64(arqzip);
BlocoX.WebServices.EnviarEstoque.Executar;
 

Erro apresentado: 
Erro Interno: 0
Erro HTTP: 0
Erro ao ajustar INTERNET_OPTION_CLIENT_CERT_CONTEXT: 12046

Dúvidas:
1) Como deixar a informação do certificado sem ter que selecionar toda hora
2) Como pegar e tratar o retorno
 

 

Share this post


Link to post
Share on other sites
38 minutos atrás, Mario Inacio disse:

Bom dia.

Tem como disponibilizar o DEMO atualizado para envio do Bloco X?
Meus fontes estão atualizados e o demo ainda está na versão antiga.

Tem mas é bem simples de mudar. só recompilar tirar as propriedades removidas e adicionar as novas.

mas assim que possível subirei a mudança ao svn


Consultor SAC ACBr Juliomar Marchetti
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

skype: juliomar  telegram: juliomar
http://www.juliomarmarchetti.com.br
Embarcadero MVP

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...