Ir para conteúdo
  • Cadastre-se

dev botao

Executável inchando ao Consultar Lote


Joffas
  • Este tópico foi criado há 2041 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde Pessoal

Estou tendo problema de "out off memory" e pelo que constatei é por causa do metodo Consultar(''); do ACBreSocial.

Criei um exemplo simples e constatei que mesmo destruindo o componente o executável aumentando na memória, acredito ser alguma dlls de assinatura. 

segue exemplo:

 

unit Unit4;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ACBreSocial, pcesConversaoeSocial, pcnConversao, ACBrDFeSSL;

type
  TForm4 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    function configACBR(AComponente: TACBreSocial): Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation
var
  continua: boolean;

{$R *.dfm}

procedure TForm4.Button2Click(Sender: TObject);
begin
  continua := false;
end;

function TForm4.configACBR(AComponente: TACBreSocial): Boolean;
var
  sDir : string;
begin
  result := false;
  AComponente.Configuracoes.Geral.VersaoDF := ve02_04_02;
  sDir := Application.ExeName;
  if (sDir<>'') then
  begin
    AComponente.Configuracoes.Arquivos.PathSchemas := sDir;
    AComponente.Configuracoes.Arquivos.Salvar := False;
    AComponente.Configuracoes.Arquivos.SepararPorCNPJ := True;
    AComponente.Configuracoes.Geral.Salvar := false;
    AComponente.Configuracoes.WebServices.Salvar  := false;
    AComponente.Configuracoes.Geral.FormaEmissao := teNormal;
    AComponente.Configuracoes.WebServices.Ambiente := taHomologacao;
    AComponente.Configuracoes.WebServices.UF := 'SP';
    AComponente.Configuracoes.Certificados.VerificarValidade := True;
    AComponente.Configuracoes.WebServices.AguardarConsultaRet      := 5000;
    AComponente.Configuracoes.WebServices.IntervaloTentativas      := 3000;
    AComponente.Configuracoes.WebServices.Tentativas               := 10;
    AComponente.Configuracoes.WebServices.AjustaAguardaConsultaRet := True;
    AComponente.Configuracoes.WebServices.Visualizar := false;
    AComponente.Configuracoes.Geral.SSLLib := libCustom;
    AComponente.Configuracoes.Geral.SSLCryptLib := cryWinCrypt;
    AComponente.Configuracoes.Geral.SSLHttpLib := httpWinHttp;
    AComponente.Configuracoes.Geral.SSLXmlSignLib := xsLibXml2;
    AComponente.Configuracoes.Certificados.ArquivoPFX := 'arquivoA1.pfx';
    AComponente.Configuracoes.Certificados.NumeroSerie := '';
    AComponente.Configuracoes.Certificados.Senha := 'senha';
    AComponente.Configuracoes.Geral.IdTransmissor := '';
    AComponente.Configuracoes.Geral.IdEmpregador :=  '';
    result := true;
  end;
end;


procedure TForm4.Button1Click(Sender: TObject);
var
  a:TACBreSocial;
begin
  continua := true;
  while continua do
  begin
    try
      a := TACBreSocial.Create(Application);
       configACBR(a);
      a.Consultar('1.2.201808.0000000000018726690');
    finally
      a.free;
    end;
    Sleep(100);
    Application.ProcessMessages;
  end;
  showmessage('parou!');
end;

end.

 

Se alguém puder me dar um luz agradeço.

 

 

 

Editado por Jonathan Fabricio Seibel
Link para o comentário
Compartilhar em outros sites

Bom dia, Joceandro!

Não sei o tipo de conexão e sua aplicação se for BDE, pode ocorrer esta msg:

// Seu Problema e o Paradoxusrs.lck que esta crescendo para isso coloca no OnCreate do Form principal essa linha ok:
// Faz com que o PdoxUsrs.Lck nao Cresca

  Session.PrivateDir := ExtractFilePath(ParamStr(0));

 

Ok.

Link para o comentário
Compartilhar em outros sites

Não é BDE não eu por exemplo utilizo o Firebird com IBO.

O problema é vazamento de memoria mesmo em alguma dll de assinatura! 

Então resolvi o problema de forma paliativa: 

Criei um auto terminal que envia os eventos gerados, e de tempo em tempo ele fecha e abre sozinho.

Link para o comentário
Compartilhar em outros sites

1 hora atrás, oprata disse:

Bom dia, Joceandro!

Não sei o tipo de conexão e sua aplicação se for BDE, pode ocorrer esta msg:

// Seu Problema e o Paradoxusrs.lck que esta crescendo para isso coloca no OnCreate do Form principal essa linha ok:
// Faz com que o PdoxUsrs.Lck nao Cresca

  Session.PrivateDir := ExtractFilePath(ParamStr(0));

 

Ok.

Obrigado pela sugestão, mas também não é meu caso.. Acredito que seja mesmo alguma dll...

O problema que eu não consigo debugar aqui pra tentar achar onde e quando acontece isso, pois o ambiente de homologação ultimamente está muito lento..

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2041 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.