Array
(
)

Windows XP .vs. BDE

Keitarobr
   - 13 mar 2006

Olá,

meu pai utiliza em seu escritório um sistema de contabilidade em Delphi, utilizando o BDE como forma de acesso a tabelas compartilhadas em rede.

Já reconheço que acho esse tipo de sistema extremamente arcaico, considerando outras possibilidades existentes atualmente, mas infelizmente meu pai está ´atrelado´ a este sistema.

A rede está configurada como quatro máquinas, sendo duas com Windows 98 SE2 (estações) e 1 uma como Windows XP SP2 (estação) e uma última com Windows XP SP2 (´servidor´). Todas as máquinas tem configurações de memória e processador para operar com folga. A rede está em um switch de 100mbit, e todas as máquinas têm placas 3Com.

Nas estações 98 e no servidor (acessado via Remote Desktop) o sistema em questão ´voa´. O acesso ao mesmo, incluindo abertura de tabelas, etc não passa de 3 segundos. Já na estação com Windows XP, o acesso leva mais de 20 segundos.

Analisando a rede com o Ethereal, detectei que nessa máquina com Windows XP, ao acessar o sistema, há uma seqüência muito grande de comandos de flush nos pacotes SMB desta estação para o servidor. Analisando o tráfego nas outras máquinas, não existe esta seqüência de pacotes, logo acredito aí estar a causa da lentidão.

Já dei uma boa vasculhada nos googlegroups/forums da vida e não consegui achar nada a respeito que funcionasse (EnableOpLocks, etc).

Em resumo, alguém já passou por uma situação similar?

A versão do BDE utilizada pelo software é 4.x (não me recordo da subversão no momento).

Já entrei em contato com os desenvolvedores (o suporte deles) e já que que não poderei contar com eles. Só me disseram ´reinstale o 98´. Só que obviamente eles não querem pagar a licença do XP que já compramos... :? (eles afirmaram que rodava sem problemas no XP).

Estive pensando em pegar DLLs da última versão do BDE (5.x) e substituir as usadas pelo software deles.

Um último detalhe: eles trabalham com unidade mapeada e o sistema não aceita trabalhar com UNCs.


Aroldo Zanela
   - 14 mar 2006

Colega,

Você pode atualizar o BDE que não terá problemas com a aplicação, e pode baixá-lo gratuitamente a partir do sítio da [url=http://info.borland.com/devsupport/bde/]Borland[/url]. Entretanto, acredito que o volume de pacotes lançados sobre a rede são em consequência aos [url=http://www.forumweb.com.br/artigos/artigos.php?action=file&id=293]arquivos temporários[/url] e basta configurar (iniciar em) para serem criados em um pasta local que a performance será incrementada.


Keitarobr
   - 14 mar 2006

Olá,

primeiramente obrigado pela resposta Aroldo. Mas infelizmente não posso alterar o caminho do aplicativo. Se o altero, o mesmo reclama que não está no diretório da aplicação...

Agora, algumas novidades sobre o problema: ele ocorre *somente* quando outra máquina tem o sistema aberto (servidor ou estações). Se sozinho no sistema, a máquina com Windows XP *voa*.

A partir de uma segunda conexão ao sistema, o Windows XP fica *extremamente* lento. Tenho quase certeza que isto ocorre devido a algum problema relativo aos arquivos de locking do BDE.

Analisando com o ethereal verifiquei que há um aumento grande de requições SMB do tipo QUERY_FS_INFO apenas quando outra estação está usando o sistema.

Agora outro ponto mais estranho: colocando meu notebook com Windows XP Home na rede, ele sempre fica rápido, independente de quais estações e sistema estão abertos...

Outro ponto: sistemas em DOS (Clipper/DBF) funcionam excepcionalmente bem sempre, independente das estações e sistemas abertos...

Cada vez fica mais estranho isto...


Aroldo Zanela
   - 15 mar 2006

Colega,

Verifique no BDE Administrator se local share está true. (Deve ser true)


Keitarobr
   - 15 mar 2006

Olá Aroldo,

eu já fiz esse teste e infelizmente não surtiu nenhum efeito...


Aroldo Zanela
   - 15 mar 2006

Colega,

Eu ainda acredito que seja arquivos temporários trafegando sobre a rede. Por meio do [url=http://www.sysinternals.com/Utilities/Filemon.html]FileMon[/url] tente monitorar a criação desses arquivos e veja se consegue identificar mais alguma particularidade relacionada.