Clipper lento em 2 terminais

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Clipper lento em 2 terminais

Mensagem por edegar_metodo »

Sou novo por aqui, mas com um problema parecido...Clipper lento em 2 terminais....
acredito que tenha um problema parecido (digo parecido pois as dicas anteriores infelizmente nao deram certo), mas vamos ao meu problema: tenho 1 servidor 2 terminais (digo servidor porque os arquivos ficam nele) sendo o servidor um Intel E2180-1024mb-hd160 e os terminais Cel430-1024mb-hd80
qnd utilizo o programa em qualquer micro (servidor ou terminais) fica rapido (digo normal) se acesso em apenas um equipamento (a velocidade do servidor para o terminal eh praticamente inexistente), agora quando carrrego o sistema em 2 (podendo ser ser/ter ou ter/ter fica muuiito lento, e depois de alguns testes cheguei a conclusao que pelo simples fato de abrir os arquivos em outro micro a lentidao aparece, o interessante é que se abrir o sistema no micro 1 (fica normal) ai abro no micro 2 (fica lento inclusive no micro 1) ai eu fecho o programa no micro 2 o micro 1 continua lento, agora se eu sair do micro 1 e entrar novamente fica normal.
cheguei a copiar o programa em 2 diretorios (para poder acessar cada diretorio em um terminal) e coloquei o programa para fazer uma atualizacao (ou seja, travar o registro, gravar, destravar, fazer o loop...ect), nos 2 terminais ao mesmo tempo e o programa fica normal, sendo assim acredito que o problema nao eh a velocidade do servidor, pois neste caso ele estava sendo muito mais utilizado (so que um micro em cada diretorio) e realmente ficou legal, mas qnd abro em 2 micros... lentidao mesmo...
alguem pode me ajudar??????
Edegar Rodrigues
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á

Clipper lento em 2 terminais

Mensagem por Pablo César »

Seja bem vindo ao fórum. Só não entendí quando você menciona: "digo parecido pois as dicas anteriores infelizmente nao deram certo", você tinha visto algum tópico sobre lentidão ?. Pois não mencionastes quais foram as dicas que você leu, também não menciona se a sua rede é com XP.

Você ja testou utilizar o FREETSLICE() do TIMESLIC.OBJ do Maligno ?. Leia este tópico:

viewtopic.php?f=1&t=6299&p=45148&hilit=FREETSLICE#p45147

Caso não der resultado ou tiver alguma dúvida é só retornar questionando e descrevendo as suas tentativas.
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.
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Re: Clipper lento em 2 terminais

Mensagem por edegar_metodo »

Desculpe a falta do SO. utilizo o XP, e ja utilizo o a lib para resolver o prob do inkey, como disse o sistema funciona bem se utilizado em apenas um micro (sendo qualquer dos micros) mas quando utilizo em 2 ai fica muito lento. quanto ao uso da cpu fica sempre abaixo dos 20% e o interessente eh que ja fiquei monitorando o gerenciador de tarefas do windows e tanto na rede quanto no uso da cpu fica realmente baixo e olhando para o led do hd do servidor ele nao pisca indicando que realmente ele esta parado o que nao justificaria tal lentidao, se vc preferir posso separar/fazer um rotina simples para que vc possa enteder o que digo ok
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Clipper lento em 2 terminais

Mensagem por gvc »

[edegar_metodo]
Como é a sua rotina de abertura de arquivos.
Se vc só abrir o sistema em um terminal e deixar no menu, abrir o sistema em outro terminal, o sistema fica muito lento (só confirmando o que eu entendi).
Vc faz alguma validação quando sai de uma tela e entra em outra?
Vc tenta bloquear registros/arquivos de um menu para o outro?
A lentidão é em todo o sistema ou só em alguns processos? (inclusão / alteração / pesquisa / relatório)
Monte o código e poste para podermos verificar / ajudar.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Re: Clipper lento em 2 terminais

Mensagem por edegar_metodo »

bom dia a todos os amigos...
vamos la, hoje fiz mais alguns testes...

o sistema abre todos os bancos no inicio e ficam todos abertos

utilizo uma funcao para verificacao do movimento do caixa (funcao chamada pressionano do F6) esta funcao faz o seguinte:

seleciona o banco movidiar.dbf
faz um filtro usado o setscope da six
faco um loop para atualizar alguns campos deste banco
visualizo atraves do dbedit()

como disse anteriormente se abro o programa apenas em um micro, esta rotina funciona rapido, agora se eu fizer uma rotina apenas para abrir este banco (fiz o teste hoje) e abri-la em um 2 micro ai fica lento.

no teste de hoje fiz o seguinte:
copiei o programa para 3 diretorios onde coloquei um bat para chamar a indexacao varias vezes, fui no servidor e executei a indexacao, fui no 1 terminal e executei a indexacao, fui no 2 terminal e carreguei o programa (lembrando que cada um usando um diretorio sem compartilhar o banco, mas abrindo o sistema com o shared)

na situacao acima: o servidor indexando (uso de memoria e uso do hd), o 1 terminal indexando (uso da rede e uso do hd do servidor) e o 2 terminal usando o programa funciona normalmente, agora se voltar a fazer o que seria o normal , abrir o programa em um mesmo diretorio ai fica lento..

fiz tambem outro teste:
conectei 2 micros usando placas gigalan, usando em 1gb, 100mb ou 10mb a diferenca de tempo nesta rotina praticamente nao existe o que indica que o tempo gasto nao esta na rede

outro teste:
fiz uma rotina para gravar dados aleatorios usando apenas um micro, se eu colocar o LOCK() o programa fica mais lento (concordo que ele tem que fazer um processo a mais o que justificaria o tempo gasto), se tirar o LOCK(), faz bem mais rapido, agora no caso do meu programa o LOCK() sempre existiu, e mesmo com o lock() fica rapido (acredito que fica rapido pois o processo de gravacao utilizado poucos registros).

impressao que eu tenho:
qnd o programa abre o arquivo pela segunda vez, ele faz alguma marcacao (talvez por seguranca), ops (acabei de fazer outro teste: abri o arquivo 3 vezes no mesmo programa usando o alias movi1, movi2, movi3 e usando em apenas um micro fica normal), ou seja o detalhe nao esta na abertura do arquivo pois agora ele tambem esta sendo aberto 2 vezes, mas qnd abro em 2 micros fica lento


espero ter ajudado com esta informação....
Avatar do usuário
juniorcamilo
Usuário Nível 3
Usuário Nível 3
Mensagens: 343
Registrado em: 10 Nov 2006 09:12
Localização: Pará

Re: Clipper lento em 2 terminais

Mensagem por juniorcamilo »

Pessoal, eu tambem tenho este mesmo problema, parece que é de uma hora para outra, ai faço é pedir a reistalacao do XP, ai fica rapido por algum tempo e depois para novamente. nao consegui resolver isto ainda se procurar em topicos anteriores ja fiz o mesmo questinamento do amigo... e iteressante que em algumas versoes do XP nao da problema algum.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Clipper lento em 2 terminais

Mensagem por alaminojunior »

Poste aí para nos apreciarmos, o seu config.nt e autoexec.nt .
Verifique o nível de desempenho, na aba Avançado, nas Propriedades do Sistema.
Acredito que também mereça uma verificação, o Anti-Vírus utilizado. E também o switch utilizado.
Você chama o programa através de um atalho ?
Enfim, esmiuçemos ....
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Re: Clipper lento em 2 terminais

Mensagem por edegar_metodo »

acabei de realizar outros testes:
1.
fui em um amigo que utiliza a boa e velha novell. Em um terminal k2-500/64/boot remoto, rodei o programa e neste micro ele ficou na metade do tempo (do micro demorado, logo ele demorou mais do que no micro rapido), mas como estamos levando em conta o micro lento ele fez na metade do tempo, fui em um segundo micro cel-2.4/512/hd40/winxp ai ele fez na metado do outro micro, logo se comparararmos como os sistemas rodando apenas o xp o tempo ganho foi consideravel principamente porque o servidor dele eh um P3-550/64/hd20...rs

2.
como estava desconfiado que o problema era na gravacao do banco utilizado, (tudo bem que ele faz uns calculos para atualizacao dos dados), coloquei (*) nas linhas para nao serem executados os processos de gravacao ou seja para ele apenas passar pelo banco, efetuar os calculos e chegar no dbedit(), coloquei no inicio do loop para imprimir a hora e no final tambem (para que possa ter uma visao do tempo real), neste caso usando apenas um micro ele nao gasta nem um segundo pois o segundo final do inicio e final sao iguais, agora quando executo o prog em outro micro ele faz em 2/3 seg,
ai eu voltei as linhas para gravacao, e demorou 10/12 seg, levando em conta que com apenas um micro e 1 seg.....ta demorando muito
depois fiz outra alteracao, criei um banco temporario no drive C e em vez de gravar as alteracoes no banco compartilhado, gravei no banco temporario (esta gravando local, sem usar o lock()) ai o processo demorou 4/5 seg...

conclusao:
acredito que ate agora foi o melhor que consegui, so que tenhos alguns problemas:
as atualizacoes e os calculos feitos sao necessarios, o pessoal acostumou a visualizar no dbedit(), (poderia usar o tbrowse()....mas nao sei..rs), como o arquivo temporario (gravo: registo do banco compartilhado, e os campos de saldo), poderia fazer uma relacao onde: o recno() do arquivo pai vai estar gravado em um campo no arquivo filho, mas pelo que andei vendo para fazer uma relacao usando o RECNO() os dois bancos estariam vendo o recno(), mas como disse o recno() eh do pai do filho eh uma variavel com nome registro.

Fico no aguardo de uma dica

Edegar
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Clipper lento em 2 terminais

Mensagem por gvc »

[Edgar]
No seu post inicial, vc não colocou que era um processo. Pelo que entendi, o sistema todo ficava lento.
Como a lentidão é em um processo, poste o fonte do processo para poder-mos analisar o mesmo.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Clipper lento em 2 terminais

Mensagem por edegar_metodo »

segue rotina em uso

lembrando que no ultimo teste efetuado a demora esta na gravacao dos totais necessarios a visualizao no dbedit()
antes de enviar este, fiz outro teste:
em um terminal qualquer rodei a funcao abaixo (demorou 20seg para visualizar) ai copiei a pasta onde estao os bancos para outro diretorio no proprio servidor (controle / contronw) e rodei a mesma funcao. tempo gasto: 3 segs

como podemos ver a diferenca eh enorme

fico no aguardo

Código: Selecionar todos

FUNCTION CONSCAIX

local tecalo,senh,nom1
keyboard ' '
sele movidiar
set order to 2
go top
m1={'DIA','NOM','comis','cus','porc'}
M2={'Data','Nome','Cm','Base','%'}
m3={,,,'@E 9,999.99'}
save scre to tecalo
QUADRO(5,2,14,73," MOVIMENTO DE CAIXA  -  CONSULTAR ","<Ent>Alterar  *  <Del>Excluir  *  <P>rocurar  *  <Esc>Retornar")
@ 22,0 CLEAR TO 22,79
@ 23,0 say SPACE(80) COLOR("N/W")
set scopetop     to usuarios->anoatu+usuarios->mesatu
set scopebottom  to usuarios->anoatu+usuarios->mesatu
go top
slcli:=slalu:=sltro:=sllup:=slmat:=slmen:=sla:=slg:=sld:=sldiv:=0
ctn_dat=dia
do while ! eof()
   nom1=nom
   do while nom=nom1 .and. ! eof()
      if tur#'CLI'
         slalu:=slalu+vlr
         if rtrim(obs)='MATRICULA'
            slmat++
           elseif rtrim(obs)='MENSAL '+usuarios->mesatu .and. usuarios->todas='N' .or. ;
                  left(obs,6)='MENSAL' .and. usuarios->todas='S' 
            if right(alltrim(obs),5)#'JUROS'
               slmen++
            endif
         endif
        else
         do case 
            case rtrim(obs)='TROCO'
                 sltro:=sltro+vlr
            case rtrim(NOM)='UNIDADE 02'
                 sllup:=sllup+vlr
            case rtrim(nom)='DIVERSOS'
                 sldiv:=sldiv+vlr
            otherwise   
                 slcli:=slcli+vlr
         endcase 
      endif
      sla=sla+vlr
      slg=slg+vlr
      sld=sld+vlr
      rlock()
      repl salge with slg
      unlock
      skip
   enddo 
   ctn_dat=dia 
   skip -1
   rlock()
   repl salal with sla
   unlock
   sla:=0
   if ctn_dat#dia
      rlock()
      repl saldi with sld
      unlock
      skip +1
      sld:=0
    else
      skip +1   
   endif
enddo 
go bottom
@ 17,5 say "Quantd.: "+str(qua,3)
@ 17,20 say "Descri‡„o.: "+left(obs,23)
@ 17,57 say "Valor.: "+transform(vlr,'@E 99,999.99')
@ 18,5 SAY 'Parcela: '+par
@ 18,24 say "Total.: "+transform(salal,'@E 99,999.99')+'  -  '+transform(saldi,'@E 99,999.99')
@ 18,57 say "Saldo.:"+transform(salge,'@E 999,999.99') 

@ 16,3 to 16,74
@ 16,17 say 'Á'
@ 16,50 say 'Á'
@ 16,55 say 'Á'
@ 16,66  say 'Á'
@ 16,67 SAY ' GERAL ' COLOR('N/W')
DBEDIT(6,3,15,74,M1,"TECLASCX",m3,M2)
clear scope
rest scre from tecalo
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Re: Clipper lento em 2 terminais

Mensagem por edegar_metodo »

ops... outro caminho.. nao que tenha desistido deste..

com o auxilio do Pablo Cesar (moderador) que agradeco o link para instalacao do TS.. acabei de instalar e configurar (acredito que o basico do basico..rs)

Ficou rapidex, show de bola, agora tenho que aprender mais sobre o TS. mas por enquanto estou gostando..

acredito que novos problemas irao surgir (isto eh informatica..rs), mas vamos conhecer este caminho, o máximo que pode acontecer é aprender e chegar a conclusão que o outro tem mais beneficios e,,,, usar o outro...

grato a todos

edegar
Avatar do usuário
Gilberto M Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 230
Registrado em: 13 Mar 2007 18:00
Localização: Natal-RN / Parelhas(RN) / Natal(RN)
Contato:

Re: Clipper lento em 2 terminais

Mensagem por Gilberto M Silva »

Já tive esse problema várias vezes substituia a placa de rede e resolveu o problema, tinha casos que o usuário fazia lançamentos e as vezes não chegava no servidor todas as informações
Gilberto[]
A cada conversasão realizada conquistamos mais amigos, isto é um lucro inestimável
Clip5.2 DBFCDX
marcolinosilva@click21.com.br gmarcolinosilva@hotmail.com / Skype:gilberto.marcolino
Avatar do usuário
rubens
Colaborador
Colaborador
Mensagens: 1520
Registrado em: 16 Ago 2003 09:05
Localização: Nova Xavantina - MT

Re: Clipper lento em 2 terminais

Mensagem por rubens »

Olá pessoal...

Estou passando por um problema parecido com o do colega... ia abrir um novo post, mas vou pegar um gancho aqui.. no meu caso... usava o windows 98 em todos pcs e não tinha problema de lentidão.. troquei pelo xp.. colocamos um servidor novo cel 430/1gb/ hd80 sata.. e começou a dor de cabeça.. sem mais nem menos o sistema congela, as vezes congela por minutos.. e volta a funcionar.. (mas congela a maquina inteira e se congela um congela todos os computadores da rede, são 4) não tem um lugar especifico no programa para isso.. .aliás até percebi que algumas vezes congela na abertura de programas para visualização com dbedit...
Já coloquei o freetslice...continua aparecendo os erros aleatorios...
Já troquei os cabos, o hub, e coloquei placas de rede offboard...
Mas continua do mesmo jeito...

Hoje estou pegando as máquinas do cliente para formatar e instalar o windows 98... porque nao dava problema antes.. tenho alguns clientes que usam win xp e não dá problema.. inclusive aqui na empresa tb.. uso o xp e nao tenho problema...

O que me incomoda mais é porque quando trava um, trava todos !!!

Se alguem tiver alguma sugestão... agradeço...

Rubens
"Eu e minha casa servimos ao Senhor e você ???"
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: Clipper lento em 2 terminais

Mensagem por alaminojunior »

A minha sugestão é:

Instale o Windows 2000/2003 Server no servidor, e nas estações Windows 98. E depois me conta. ;)
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

Re: Clipper lento em 2 terminais

Mensagem por edegar_metodo »

como disse anteriormente, gostei da ideia do TS, nao entendi bem como funciona o licenciamento dos 120 dias, estou comecando a trabalhar com ele agora, mas....
nos testes efetuados, peguei um k6-500/64mb/hd 10/w98...coloquei ele como terminal e rodou: corel 13,word 2003 , excel 2003, photoshop, e o programa em clipper... e tudo numa boa ao mesmo tempo.... como disse: gostei deste 2003 server.
mas voltando ao meu problema inicial (clipper lento) alguem tem uma idéia de como melhorar ou eh um detalhe do clipper mesmo?
Responder