Jump to content
Notícias do ACBr

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

click.png

click.png

click.png

Executável inchando ao Consultar Lote


Joffas
  • Este tópico foi criado há 1065 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.

 

 

 

Edited by Jonathan Fabricio Seibel
Link to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other 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 to comment
Share on other sites

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

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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.