Jump to content
Fivewin Brasil

Duplicação na Base de Dados (Esclarecido)


Valdir

Recommended Posts

Pessoal...


Em um único Cliente está ocorrendo uma coisa doida com a Base de Dados.


O Sistema está instalado num Servidor com o Win Server 2008.


Este Servidor também é usado para armazenar os arquivos do AutoCad (.dwg) e normalmente esses arquivos são gigantes.


Quando é gravado um desses arquivos no Servidor, aparentemente toda a capacidade do processador é utilizada.


A impressão que tenho é que pelo Servidor estar sobrecarregado, não retorna aos Terminais as informações que recebeu os pacotes para processar e por consequência os Terminais continuam enviando os pacotes até serem liberados.


Isso vem causando um estrangulamento no processamento e quando o Sistema tenta gravar algo na Base de Dados, as informações são duplicadas no ato da gravação.


Vejam... não estou falando de corrupção de índices e sim de duplicação na Base de Dados.


Alguém já passou por algo assim ?


Como resolveu ?


Obrigado.

Link to comment
Share on other sites

Fala ae meu amigo... Blz.

Observe que esses links tratam de erros na forma de tratamento da Base de Dados.

O que procuro é a solução para o problema de sobrecarga no processamento.

Gostaria de saber se existe alguma função que identifique se o Servidor não respondeu à uma requisição de travamento da rede.

Pachice...

abração.

Link to comment
Share on other sites

travamento da rede.???

OU

travamento da registro?

usas o NETERR() ??

// VERIFICAR SE A REDE ESTA NORMAL PARA ABERTURA DOS BANCOS. ERROR: DOS 64
FUNCTION VER_SE_ABRE_BANCOS()
 
   IF .NOT. FILE( "CADNFE.DBF" ) .OR. .NOT. FILE( "CADCESVE.DBF" ) .OR.     ;
      .NOT. FILE( "ICESVE.CDX" ) .OR. NETERR()  // verifica a conexao de rede...
 
      MsgStop( OemToAnsi( "ATEN€ÇO USUµRIO:                       " )+CRLF+ ;
               OemToAnsi( "PROBLEMAS NA REDE DE COMPUTADORES.     " )+CRLF+ ;
               OemToAnsi( "IMPOSSIVEL ABRIR BANCO DE DADOS.       " )+CRLF+ ;
               OemToAnsi( "VERIFIQUE SUAS CONEXåES DE REDE.       " )+CRLF+ ;
               OemToAnsi( "O SEU COMPUTADOR NÇO CONSEGUE CONEXÇO  " )+CRLF+ ;
               OemToAnsi( "COM O SERVIDOR DE ARQUIVOS DO PLENO.   " )+CRLF+ ;
               OemToAnsi( "TENTE: DESLIGUE E RELIGUE O SEU COMPUTA" )+CRLF+ ;
               OemToAnsi( "DOR PELO <BOTÇO> DE DESLIGAR.          " )+CRLF+ ;
               OemToAnsi( "ESPERE 10 SEGUNDOS E RELIGUE-O.        " )+CRLF+ ;
               OemToAnsi( "SE MESMO ASSIM CONTINUAR ESTA MENSAGEM," )+CRLF+ ;
               OemToAnsi( "RETIRE TODOS OS USUµRIOS DA REDE E,    " )+CRLF+ ;
               OemToAnsi( "TENTE: DESLIGUE E RELIGUE O SERVIDOR DE" )+CRLF+ ;
               OemToAnsi( "ARQUIVOS ONDE ESTµ INSTALADO O PLENO.  " )+CRLF+ ;
               OemToAnsi( "REINDEXAR TODOS OS ARQUIVOS DO PLENO.  " )+CRLF+ ;
               OemToAnsi( "SE MESMO ASSIM CONTINUAR ESTA MENSAGEM," )+CRLF+ ;
               OemToAnsi( "CHAME O SEU TCNICO DE REDES(T.I.).    " ),      ;
               OemToAnsi( "Erro Fatal de Rede - Verifique Sua Rede" ) )
 
      DBCLOSEALL()
 
      QUIT
 
   ENDIF
 
RETURN( .T. )

http://www.ousob.com/ng/clguide/ng5287d.php

Link to comment
Share on other sites

Valdir, vc grava este arquivo em uma tabela DBF ou em uma tabela de banco de dados?

O ideal é "fatiar" o arquivo em varios pedaços e gravar aos poucos...

Explica melhor como vc grava isso..

abraços

Olá Eduardo... Obrigado por responder.

São vários Dbf atualizados simultaneamente. Exemplo :

Numa venda seriam atualizados o dbf do Cliente, produtos, vendas, financeiros, etc e tal...

Ocorre que se o servidor estiver ocupado e não respondendo as requisições de travamento da rede, os terminais continuam tentando enviar os pacotes.

Quando isso ocorre, alguns dos dbfs acima ficam duplicados.

Em conversa com o responsável da rede da empresa, ficou evidente que são os aplicativos do autocad que estão consumindo todo os recursos da rede e do servidor.

Ele está estudando uma maneira de solucionar esse problema, porém se eu conseguisse via programação e surgisse uma outra ocorrência deste tipo, passaria desapercebido.

PS.... Continuo aguardando uma posição do Linnares em relação ao Congresso... assim que tiver algo, reporto lá no tópico.

abração.

Link to comment
Share on other sites

A solução nesse caso é que o HD seja SCSI que permite gravacao simultanea...

No mais não vejo o que vc pode fazer... Tem falha de protocolo ai tb pq se os pacotes são reenviados pelo terminal o servidor deveria recusar os pacotes repetidos...

Para resolver via programação a solução é usar BANCO DE DADOS (SQL SERVER, MY SQL, ETC) porque ai o gerenciamento de gravacao dos dados seria no serviço do servidor.

Quanto ao evento tomara que aconteça e com a presença do Linares será melhor ainda.

abraços

Link to comment
Share on other sites

Valdir, uma idéia que me surgiu agora é vc gravar um arquivo no servidor antes de iniciar a gravacao dos seus dados, mais ou menos assim:

MemoWrit("gravacao.txt","teste de gravacao")

Replace ... ... ...

replace ... ... ...

dbcommit()

Fazendo isso se o servidor estiver sobrecarregado ele vai ficar no memowrit e assim que liberar e gravar ele ai vai iniciar a gravacao dos seus registros... é uma dica... mas tem que testar...

abraço

Link to comment
Share on other sites

Valdir, uma idéia que me surgiu agora é vc gravar um arquivo no servidor antes de iniciar a gravacao dos seus dados, mais ou menos assim:

MemoWrit("gravacao.txt","teste de gravacao")

Replace ... ... ...

replace ... ... ...

dbcommit()

Fazendo isso se o servidor estiver sobrecarregado ele vai ficar no memowrit e assim que liberar e gravar ele ai vai iniciar a gravacao dos seus registros... é uma dica... mas tem que testar...

abraço

Blz Eduardo... vou testar e depois retorno.

Obrigado.

Waldir, apenas por curiosidade.

O servidor, poderia descrever equipamento, processador, hd, memoria.

Quantos terminais pendurados neste servidor (total, inclusive remotos)

Fala ae Sérgio.. Blz ?

Obrigado por responder.

Irei verificar essas informações, depois retorno.

Obrigado.

Link to comment
Share on other sites

Ola Valdir,

Pelo que estou entendendo, o problema esta no servidor e não nas aplicações, provavelmente o servidor esta mal configurado, pois embora o AUTOCAD apenas grave as informações no SERVIDOR "estou imaginando que o AUTOCAD esteja em uma estação", desta forma não deveria haver concorrecia de dados, mais se o AUTOCAD estiver sendo executado no SERVIDOR, meu jovem providencie outro servidor para a SUA APLICAÇÃO.

Espero ter ajudado.

Link to comment
Share on other sites

Olá pessoal...

Antes de qualquer coisa, agradeço à todos pelas respostas.

Após esperar e cobrar o responsável pela TI do cliente durante alguns dias, finalmente chegamos a conclusão que a duplicação está ocorrendo pelo fato do aplicativo do AutoCad estar instalado no Servidor.

Como bem disse o amigo Jackson... foi só instalar esse aplicativo num segundo servidor que os problemas acabaram...

Obrigado.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...