× Linguagem de Programação ADVPL

Perguntas maximum number of components per window exceeded

Mais
7 anos 5 meses atrás #31410 por alexcarvalhodasilva
O erro continua acontecendo. Vou fazer um teste tentando zerar todas as variáveis e fechando todas as tabelas no botão sair.

Existe alguma forma de monitorar tudo o que está aberto na thread?

Luiz V Alves escreveu: Usa depois do End.

Mas o erro continua ocorrendo ?

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31411 por lalberto
Cara eu descobri este problema observando no task manager que o serviço do protheus só aumentava a quantidade de utilização de memória, não diminuia, verifique o seguinte, cria um serviço aonde só vc irá acessar, e verifique a quantidade de memória utilizada pelo appserver.exe e inicie a sua tela customizada, entra e sai dela várias vezes e veja se a memória vai aumentando.

O Correto é, se vc entrar numa tela a memória vai aumentar normalmente porém ao sair ela deve diminuir também.

Abraços.

Luiz Alberto Vieira Alves
Proprietário
55 (12) 9 8256-5905 (Vivo)
www.3lsystems.com.br
www.masteradvpl.com.br

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31413 por alexcarvalhodasilva
Fiz esse teste, mas percebi que no meu caso qualquer rotina do Protheus, inclusive as padrões, só aumentam a memória, nunca diminui. :-)

Luiz V Alves escreveu: Cara eu descobri este problema observando no task manager que o serviço do protheus só aumentava a quantidade de utilização de memória, não diminuia, verifique o seguinte, cria um serviço aonde só vc irá acessar, e verifique a quantidade de memória utilizada pelo appserver.exe e inicie a sua tela customizada, entra e sai dela várias vezes e veja se a memória vai aumentando.

O Correto é, se vc entrar numa tela a memória vai aumentar normalmente porém ao sair ela deve diminuir também.

Abraços.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31415 por alexcarvalhodasilva
Luiz,

Ativei o DebugThreadUsedMemory=0 no appserver.ini e consegui monitorar a memória da Thread no monitor, agora consegui perceber claramente que ao sair da minha rotina, a quantidade de memória está baixando. Mas também pude perceber que a quantidade de memória usada sempre vai subindo, inclusive nas rotinas padrões, ex:

A quantidade de memória usada estava 100000, depois de abrir o cadastro de produtos vai para 104000, ao fechar volta para 101000. Mas percebeu que não ficou na mesma condição que estava antes?

Acho que eu consegui entender o problema e na minha opinião o problema está no Protheus e não na minha customização. Quando eu estava fazendo testes, eu fazia logoff e logava com outro usuário para fazer aprovações em outros níveis e fazia isso várias vezes. Eu percebi que quando eu faço isso, a Thread não é reiniciada, pois não estou finalizando a conexão, mas sim fazendo logoff, e fica com um consumo de memória alto, da conexão anterior, até que o problema acontece.

Acredito que isso não irá acontecer em produção, pois os usuários não ficam trocando de login, quando eles terminam o trabalho, eles finalizam a conexão.

Não sei se consegui me explicar. :-)

Luiz V Alves escreveu: Cara eu descobri este problema observando no task manager que o serviço do protheus só aumentava a quantidade de utilização de memória, não diminuia, verifique o seguinte, cria um serviço aonde só vc irá acessar, e verifique a quantidade de memória utilizada pelo appserver.exe e inicie a sua tela customizada, entra e sai dela várias vezes e veja se a memória vai aumentando.

O Correto é, se vc entrar numa tela a memória vai aumentar normalmente porém ao sair ela deve diminuir também.

Abraços.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31416 por alexcarvalhodasilva
Confirmado Luiz, o problema é da Totvs.

Seguinte, para reproduzir o erro basta logar no protheus e ficar trocando de usuário utilizando a opção logoff ao invés de Finalizar, depois de trocar de usuário umas 20 vezes o problema irá acontecer.

Ou seja, o Protheus não está gerenciando bem a troca de usuários, ele está acumulando lixo na memória até que o problema acontece, não tem nada haver com a minha customização, na verdade eu nem preciso acessar ela para que o erro aconteça.

A sua dica de analisar o consumo de memória foi fundamental para eu identificar o problema, muito obrigado.

Por favor Acessar ou Registrar para participar da conversa.

Mais
7 anos 5 meses atrás #31418 por admin
Eita lasqueira rsrs bom o negócio é orientar então o pessoal a fechar o protheus, enquanto a totvs não encontra uma solução.

Mas blz, qualquer coisa volta ai pra ajudar a gente tbém.

Abraços.
:woohoo:

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.135 segundos
Joomla templates by a4joomla