lentidao para acessar DBF em rede

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

lentidao para acessar DBF em rede

Mensagem por Pablo César »

Se precisar automatizar essa desabilitação, baixe da seção de Downloads: Desabilitar a proteção de tela no Windows e coloque no arquivo .BAT antes de chamar o seu sistema. Espero que ajude !
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

lentidao para acessar DBF em rede

Mensagem por porter »

O Servidor tem 2.00 gb de ram hd de 160

Todos os terminais tem 1 Tera com 3.00 Gb de ram

O Fato do terminal ter hd maior e mais memoria pode influenciar na abertura dos arquivos pelo terminal ?
A demora é no momento da abertura dos arquivos pelo terminal, se executar o programa la no servidor, a abertura dos arquivos é rapida.

Todos os pcs tem windows XP3.
Em uma rede ponta a ponta, o acesso é rapido tanto no servidor como no terminal.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

lentidao para acessar DBF em rede

Mensagem por Pablo César »

Todos os pcs tem windows XP3.
Ops... acho que você já disse tudo... rs já houve muitos registros de reclamação aqui no fórum sobre esta versão de pack do XP.
Em uma rede ponta a ponta, o acesso é rapido tanto no servidor como no terminal.
O hub ou roteador, pode estar dando falhas, pode até mesmo ser uma estação com alguma placa com defeito. Quase tudo em informática para detectar falhas, procede-se por dedução. Desplugue todas as estações do hub/roteador, deixe o servidor e a estação que estiver usando, e coloque cada estação observando se causa algum erro ou lentidão. É um trabalho arduo mas pode levar a detecção do erro.

Também tem um aplicativo que seria bom executá-lo para melhor conveniência na abertura de arquivos e o timeout para impressão. Aqui tem este aplicativo, experimente: Utilitário para alteração de REGISTRO do WINXP
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

lentidao para acessar DBF em rede

Mensagem por JoséQuintas »

Tava revendo as mensagens...
Quando comecei a usar índices CDX tive problemas de lentidão, na época ainda era o Windows 98.
Foi nessa época que comecei a usar a OSLIB.

Meu EXE de Clipper, quando parei de usar o Clipper, tinha 4MB e compactado 1.5MB, então esqueça tamanho de EXE.

Se puder, é igual a propaganda, esqueça overlay, use Blinker 7.0 e modo extendido.
Por mais que ajuste as overlays vai ficar limitado a 640kb de memória, e com Blinker 7.0 e modo extendido, pode usar até 16MB pro Clipper.
Exospace também é bom, está num limite entre o normal e Blinker.

Não sei as outras LIBs, só conheço as que usei:
usava só clipper + blinker 7.0 + OSLIB, e parte da superlib pra mouse.
No programa principal acrescentei OL_AutoYield(.t.)
E em todos os locais possíveis, coloquei OL_Yield()
Pra facilitar, troquei todos os Inkey() por MyInkey(), e em MyInkey() tratei de colocar chamada extra pra OL_Yield(), com tratamento por tempo, pra não exagerar - até mesmo durante a indexação eu tinha isso, e até na getsys.
Isto da OSLIB foi pra liberar tempo ao Windows, pois como o Windows é que faz a comunicação da rede, se o programa Clipper usar 100% de CPU, o Windows não tem tempo de tratar a rede.

Coloquei isso no tempo do Windows 98 e nunca mais precisei mexer em nada.
Nunca precisei mexer na configuração de nenhum computador, a não ser mapear unidade de rede, e o limite de arquivos em config.nt.
Um extra do blinker é embutir o parâmetro CLIPPER=F250 no EXE, e dispensa alteração do autoexec.nt.

Rotinas como esta: - Aqui importantíssimo, porque o windows é que vai ficar vendo se foi liberado, e precisa tempo pra isso.
Do While .t.
If rLock()
Exit
Endif
MyInkey(0.5) // OL_Yield()
Enddo

Aonde era Inkey(0).....
nKey := 0
Do While nKey == 0
OL_Yield()
nKey := Inkey()
Enddo

As mudanças acima alteram o consumo de CPU de 100% para ZERO.
Nas telas de GETs, que são por Inkey(0)..... aí entra a vantagem de trocar na getsys o Inkey(0) por MyInkey(0), assim não fica multiplicando rotinas dentro dos fontes.

Isso se o problema for esse, de consumo de CPU.....
Segue a rotina que usava como MyInkey() e a IdleTo95() onde fazia o ajuste fino nos processos.

Código: Selecionar todos

    function MyInkey(mTempo)
    Local nKey     := 0
    Local nSeconds := 0
    Local mAcao
    mTempo   := iif(mTempo==NIL,-1,mTempo)
    nSeconds := Seconds()
     do while .t.
       IdleToW95((mTempo != -1))
       nKey := Inkey()
       do case
       case nKey != 0
          exit
       case mTempo == 0
       case Seconds() - nSeconds >= mTempo
          exit
       endcase
    enddo
    if ( mAcao := SetKey(nKey) ) != NIL .and. mHotKey
       Eval(mAcao,ProcName(),ProcLine(),ReadVar())
       nKey := 888
    endif
    return nKey



function IdleToW95(mForcaIdle)

Static IdleSeconds := 0
Static IdleTime    := "00:00:00"
mForcaIdle := Iif(mForcaIdle==NIL,.f.,mForcaIdle)

If IdleTime != Time() .Or. mForcaIdle
   IdleSeconds += 1
   IdleTime    := Time()
   If IdleSeconds > 1 .Or. mForcaIdle // pra chamar OL_Yield() somente a cada 2 segundos
      IdleSeconds := 0
      OL_Yield()
   Endif
Endif
return NIL

Só pra dar uma idéia do resultado:
De vez em quando, na minha máquina, eu colocava uns 10 sistemas de clientes pra reindexar ao mesmo tempo, processar arquivos, etc... e enquanto isso eu ia usando a máquina pra outras coisas...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
porter
Usuário Nível 5
Usuário Nível 5
Mensagens: 1057
Registrado em: 10 Dez 2009 16:44
Localização: OLIMPIA-SP

lentidao para acessar DBF em rede

Mensagem por porter »

ola pessoal, o servidor foi formatado e instalado o Xp
Versao 5.1( compilacao 2600.xpsp.080413-2111 Server Pack 3)
nao sei se tem alguma coisa a ver mas agora o sistema está bem rápido.


Em um outro cliente tem instalado o Xp
5.1(compilacao 2600.xpsp_sp3_qfe.090804-1456 : Service Pack 3)
Nesse o sistema esta lento, vou ver com o cliente para formatar e colocar a versao do Windows xpsp.080413-211, vou ver os resultados e volto a postar.

Valeu pessoal, obrigado.
Dudu_XBase
Membro Master
Membro Master
Mensagens: 1071
Registrado em: 25 Ago 2003 16:55

lentidao para acessar DBF em rede

Mensagem por Dudu_XBase »

Jamais Nunca em Hipótese Alguma....Use em um servidor com Sistema Operacional de Client aff... :?
Use Windows 2003/2008 Server ou Linux com Samba Server...
Na Rede não use HUBS e sim Switchs...diminuirá o broadcast... :)Pos


________________________________________________________________________________________________________
(Aow Saudade) Clipper 5.2e, Blinker 7, RDD SIXNSX, DBFCDX /Xharbour 1.0, Rdd Mediator (Mysql) Free , RDD Sqlrdd (Sql Server) Comercial
(Hoje) C# Python Sql Server e Oracle




Dozao
Usuário Nível 1
Usuário Nível 1
Mensagens: 27
Registrado em: 03 Ago 2010 09:06
Localização: Sertãozinho/SP
Contato:

lentidao para acessar DBF em rede

Mensagem por Dozao »

Boa tarde amigo, não sei se você resolveu seu problema. Estive lendo o que o pessoal disse, e uma pergunta:

Você verificou o tempo que leva para dar ping das máquinas até o servidor??

Digo isso porque uma certa vez, algumas máquinas da rede estavam lentas demais para acessar o sistema, porém a internet funcionava ultra rápida. Foi batata, dei um ping no servidor e o tempo de resposta de uma máquina pra outra variou de 5ms a 12ms... Parece pouco, mas pra aplicações DOS faz uma diferença brutal.

Resolvi o problema ajustando o Agendador de Pacotes QoS das placas de rede em questão (não me lembro direitinho como eu fiz, mas você consegue em qualquer tutorialzinho da internet, coisa simples). Foi só fazer esse procedimento, que o tempo de ping já mudou pra menos de 1ms.... Nunca mais tivemos problemas.

Se o problema ainda não foi resolvido, tente verificar isso. Abraço e boa sorte!
@douglas_muriel
Responder