Transferência de arquivos

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Transferência de arquivos

Mensagem por leandrolinauer »

Boa tarde a todos.
Eu tenho uma função que transfere dentro de minha VPN arquivos de remessas e retornos entre a MATRIZ e as FILIAIS, e funciona perfeitamente no quesito de dados, mas quando chega em certa hora creio eu pela lentidão do UPLOAD da internet, o sistema simplesmente congela, trava, não responde por nada desse mundo, fica travado mesmo sem sair do processo.
Pergunto existe algo diferente de como comunicar (transferir dados) matriz filial sem que trave, ou se cai a net o sistema volta a funcionar automaticamente, evitando erro de gravação no destino devido a queda, etc.
Abaixo linha do código onde esta parando.

Código: Selecionar todos


   ShowWaitMonitore("VPN - Monitorando dados na conta de VPN...","G+/N",,1) //mensagem de tela do que ta fazendo 
  //tem hora que mostra esta linha acima e trava, nao chegando na linha abaixo
   For iK:=1 To Len(a_HANDLE) //faz um for
       wSaida:=ExitSeek()  //se precionar esc abre solicitando cancelamento e fechamento do sistema
       d_VPN  :=oVPN_DIR+a_HANDLE[iK,1]+"\" //pega diretorio
       vLOJA  :=a_HANDLE[iK,1] //qual loja
       n_PUp  :=a_HANDLE[iK,3] //qual pasta para transferir
       n_FUp  :=a_HANDLE[iK,4] //qual arquivo para transferir
       n_PDown:=a_HANDLE[iK,5] //qual pasta para baixar
       n_FDown:=a_HANDLE[iK,6] //qual arquivo para baixar

       n_FUpTM:=Left(n_FUp,9)+w_EXTMP //formata para usar mais abaixo

       ShowWaitMonitore("VPN - Monitorando dados na conta de VPN...","GR+/N",,1) //indica que chegou até aqui
      //nao chega a mostrar aqui quando trava de vez enquando, isto quer dizer que para em algum lugar acima, mas não identifiquei aonde.

       If MONITORE_VPN("MONITORA",d_VPN)  //VERIFICA se esta COMUNICANDO e POSICIONA NA PASTA no destino

       End
   Next

Só ocorre quando a net cai que aparece erro na gravação do arquivo no destino, ou quando o upload ta muito baixo e nao consegue comunicar, ai ele trava, congela e fica até que tenha a intervenção humana para voltar a funcionar, finalizando o sistema pelo gerenciador de tarefa e abrindo novamente.

Se alguem se habilitar a achar o problema, cheguei a duvidar do FOR se o problema é nele ou não, estou cogitando em mudar os FOR para WHILE, tbem não se se isto interfere.

Grato a todos.
:))
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Kapiaba
Colaborador
Colaborador
Mensagens: 1908
Registrado em: 07 Dez 2012 16:14
Localização: São Paulo
Contato:

Transferência de arquivos

Mensagem por Kapiaba »

Olá, veja se ajuda, veja qual é a função equivalente no Harbour ou na LIb que vc. usa.

Código: Selecionar todos

   IF .NOT. IsInternet()

       MsgInfo( OemToAnsi( "ATEN€AO USUµRIO:                     " )+CRLF+ ;
                OemToAnsi( "PERDA DE CONEXÇO COM A INTERNET.     " )+CRLF+ ;
                OemToAnsi( "NÇO FOI POSSÖVEL ENVIAR A MENSAGEM DE" )+CRLF+ ;
                OemToAnsi( "ERRO DA NOTA FISCAL ELETRâNICA.      " )+CRLF+ ;
                OemToAnsi( "VERIFIQUE SUA CONEXÇO DE INTERNET.   " ),      ;
                OemToAnsi( "PERDA DE CONEXÇO COM A INTERNET.     " ) )

   ELSE

      SendEmailLog( cErrorLog )  // ENVIA O LOG DE ERRO DA NFE

   ENDIF

FUNCTION IsInternet()

   LOCAL cIp, cVret := .F.

   WsaStartUp()

   // conforme pessoal do forum, e para chamar duas vezes ??
   cIp := GETHOSTBYNAME( "microsoft.com" )
   cIp := GETHOSTBYNAME( "microsoft.com" )

   WsaCleanUp()

   // Seguranca caso o provedor da microsoft esteja fora do ar...
   IF ( cIp <= "0.0.0.0" )

      WsaStartUp()

      cIp := GetHostByName( "google.com" )
      cIp := GetHostByName( "google.com" )

      WsaCleanUp()

   ENDIF

RETURN( cIp<>"0.0.0.0" )
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

Transferência de arquivos

Mensagem por rochinha »

Amiguinhos,

Esta dica serve para todos e é interessante até que se tenha uma ferramenta de criação própria já pronta.

Muito se falam em VPN, mas ninguém explica como montou a sua, portanto não dá pra dar um veredicto de problemas.

As VNPs no Brasil não rolam, mesmo porque nossas estruturas de internet são precárias, sendo que dentro da capital de São Paulo podemos ter internet a 30Mbps, mas o cliente fora, aos arredores pasta usando internet de 1Mbps(que nunca vai além dos 10%) fazendo com que toda estrutura da VPN fique precária.

Eu usei o Hamachi por algum tempo e senti a facilidade de uso e a estrutura muito eficaz.A versão Free permite 5 conexões(4+1) sendo que após um ano precisa pagar. Antes era mais fácil instalar e configurar o mesmo mas agora exige um intermediário através do site do detentor.

A melhor ferramenta para criação de VPN, Free, é o OpenVPN, mas o que é encontrado hoje, vem cheio de adicionais, toolbar e outras des-necessáriedades que denigrem o produto.

Então a dica é:

Use o MegaSync, para tanto é necessário se cadastrar lá. Crie uma conta de email no GMAIL para a empresa de seu cliente e use-a para cadastrar-se no MEGA.CO.NZ. Baixe o aplicativo para o desktop de cada máquina que irá se comunicar com o servidor. Quando digo comunicar é enviar e receber arquivos.

- Instale na maquina servidora criando uma pasta de intercâmbio.
- Instale nas maquinas clientes criando uma pasta de intercâmbio.

No momento que voce joga um arquivo nestas pastas elas serão enviadas para o MEGA e o mesmo distribui para as outras.

Em suma, isto é só um paleativo e voce não mexe no seu código, quer dizer, só um pouquinho e quem sabe um poucão.

Estou usando este esquema para atualizar meus clientes. Quando eles me ligam, pedindo para atualizar, eu FINJO que mando, mas o(s) arquivo(s) já estão lá.

Ser lobo-solitário exige uso da tecnologia à meu favor.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
leandrolinauer
Usuário Nível 3
Usuário Nível 3
Mensagens: 413
Registrado em: 16 Out 2006 10:59
Localização: Paranaíba-MS

Transferência de arquivos

Mensagem por leandrolinauer »

Bom dia Rochinha.
Eu estou utilizando o HAMACHI mesmo para fazer o tunelamento.
Vou verificar este outro vamos ver como funciona.
Grato
:xau
Harbour 3.2 + GtWVW + QT + SQLite3 + DBF + SQL (Firebird)
Responder