rmarra Posted August 6, 2009 Report Share Posted August 6, 2009 Olá pessoal, gostaria de pedir uma dica. Preciso colocar meu sistema para caso o servidor da rede local caia, os terminais continuem fazendo venda e quando a rede voltar, atualizar as informações no servidor. Parece-me que existe uma rotina usando FTP local para replicar as informações dando segurança, evitando uma possÃvel copia de arquivos de uma estação para outra ocasionando sérios transtornos. OBS: 1- O banco de dados ainda é DBF/CDX. 2- Este sistema é em FW 16 Bits Ficarei muito grato com alguma ajuda. Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
rmarra Posted August 6, 2009 Author Report Share Posted August 6, 2009 Olá pessoal, gostaria de pedir uma dica. Preciso colocar meu sistema para caso o servidor da rede local caia, os terminais continuem fazendo venda e quando a rede voltar, atualizar as informações no servidor. Parece-me que existe uma rotina usando FTP local para replicar as informações dando segurança, evitando uma possÃvel copia de arquivos de uma estação para outra ocasionando sérios transtornos. OBS: 1- O banco de dados ainda é DBF/CDX. 2- Este sistema é em FW 16 Bits Ficarei muito grato com alguma ajuda. Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 6, 2009 Report Share Posted August 6, 2009 Entendi, mais ou menos, pode dar mais detalhes? usando um TIMER, E CHECANDO o Se o Servidor esta OK, com o comando: WNETADDCON(), Será que não é o caminho? Dei muro... João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
rmarra Posted August 6, 2009 Author Report Share Posted August 6, 2009 Kapi, deveria ser assim: - Fazendo venda normal pela rede atualizando no banco de dados do servidor. - A rede caiu, mas as estações devem continuar vendendo e imprimindo a venda localmente. - Rede voltou, atualizar os dados das vendas locais das estações no banco de dados do servidor Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 6, 2009 Report Share Posted August 6, 2009 ENTÃO, ACHO QUE O COMANDO ACIMA RESOLVE. CAIU A REDE, TENTAS ABRIR COM O COMANDO ACIMA, RETORNOU .F., VAI PARA LOCAL.(BANCOS DEVEM ESTAR NO LOCAL), TENTA CONECTAR A REDE, CONECTOU, VOLTA PARA O SERVIDOR E ATUALIZA(), OS BANCOS DO SERVIDOR COM OS DADOS DO TERMINAL. TÔ INDO BEM? Aceito criticas para esta logica. João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
rmarra Posted August 6, 2009 Author Report Share Posted August 6, 2009 Kapi, como é a sintaxe de uso deste comando WNETADDCON()? Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
kapiaba Posted August 6, 2009 Report Share Posted August 6, 2009 citação:Kapi, como é a sintaxe de uso deste comando WNETADDCON()? Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop id=quote>id=quote>UUUIIII, adoro esse nome KAPI.... KKKKKKK +- Assim, infelizmente nao posso postar a rotina completa segredo de estado... kkkkkkkkkkkkkkk MSGRUN( "Desconectando o Servidor de Arquivos...", ; "Aguarde Um Momento, Por Favor! ", ; { || DESCONECTA_SERVIDOR() } ) MSGRUN( "Conectando ao Servidor de Arquivos... ", ; "Aguarde Um Momento, Por Favor! ", ; { || CONECTA_SERVIDOR() } ) //-> Para Caso NÆo Consiga Se Conectar a Primeira Vez, Tenta de Novo IF FILE( "Z:\SISTEMAS\VENDAS\ESTOQUE.DBF" ) //-> Passa Batido... Conectou ELSEIF !FILE( "Z:\SISTEMAS\VENDAS\ESTOQUE.DBF" ) //-> Tenta Conectar a Rede ao Servidor de Arquivos de Novo MSGRUN( "Conectando ao Servidor de Arquivos...", ; "Aguarde Um Momento, Por Favor! ", ; { || CONECTA_SERVIDOR() } ) MsgInfo( OemToAnsi( "NÆo Consegui Conectar a REDE " ) + CRLF + ; OemToAnsi( "na Primeira Vez, Tecle " ) + CRLF + ; OemToAnsi( "Para Tentar Mais Uma Vez. " ), ; OemToAnsi( "Erro ao Conectar a REDE! " ) ) ENDIF //-> Se NÆo Conseguiu Conectar Mesmo... Ap¢s duas tentativas... IF !FILE( "Z:\SISTEMAS\VENDAS\ESTOQUE.DBF" ) MsgInfo( OemToAnsi( "Aten‡Æo, Servidor de Arquivos " ) + CRLF + ; OemToAnsi( "Desligado, Por Favor Ligue o " ) + CRLF + ; OemToAnsi( "Computador Principal(Servidor) " ) + CRLF + ; OemToAnsi( "e Tente Novamente! ERRO! " ), ; OemToAnsi( "Erro ao Conectar Com o Servidor" ) ) RETURN NIL ENDIF BEEP(3) SndPlaySound(".\Init.Wav" ) //-> Conecta a Rede STATIC FUNCTION CONECTA_SERVIDOR() //->Memory(-1) /*limpia arreglo y llama al colecor de basura de xharbour*/ hb_gcAll() WNetAddCon( "\\MICRO24",,"Z:" ) SysWait(1) RETURN NIL //-> Desconecta a Rede STATIC FUNCTION DESCONECTA_SERVIDOR() //->Memory(-1) /*limpia arreglo y llama al colecor de basura de xharbour*/ hb_gcAll() wNetDelConnection( "Z:", .T. ) SysWait(1) RETURN NIL // ---------------------- FIM DO PROGRAMA -----------------------------------// id=code>id=code>João Santos - São Paulo. kmt_karinha@pop.com.br kapiaba@brfree.com.br Fone: (11) 3106-2832 FWH 2.7 - xHARBOUR 0.99.61 - WorkShop.Exe Quote Link to comment Share on other sites More sharing options...
rmarra Posted August 6, 2009 Author Report Share Posted August 6, 2009 Ok, vou dar uma futucada! Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
fluna Posted August 6, 2009 Report Share Posted August 6, 2009 cara, isso vai e dar um mega trabalho... primeiramente, vc terá que colocar um campo adicional em todos os dbfs tipo L_ATU(L) onde será setato .t. se estiver no dbf do servidor e no local; ao gravar (replaces), terá que gravar no local e no servidor. se nao consegiur grtavar no servidor ("fora do ar"), seta .f. enquantoi isso o timer fica monitorando quando po servidor entra no ar novamente. ai, se a funcao que monitora o servidor indicar que esta no ar, o sistema espera a tansacao em curso(a venda por ex.) acabar e pede para o operador aguardar enquanto sincroniza os arquivos locais com o do servidor; todo e qualquer registro que estiver com L_ATU=.F., não está sincronizado com o servidor; a medida que for lendo e gravando um-a-um, vai setando o L_ATU=.t.; Clipper 5.3; Fw195; Link Quote Link to comment Share on other sites More sharing options...
fluna Posted August 6, 2009 Report Share Posted August 6, 2009 so complementando... uma variavel global deverá informar sempre que dbf esta sendo usado, o do servidor ou o local essa variavel devera ser alterada somente pelo monitor do servidor; se, ao dar replace essa variavel indicar que esta no modo local, significa que o servidor tá off; outra coisa, gravar a mesma coisa duas vezes em dbfs sepatados deve almewntar teu codigo... sugiro uma funcao a ser usada no lugar do replace, sei la tipo my_replace("dbf->campo" , variavel) na funcao my_replace, captura o nome do dbf contido na expressao substr(nome_campo,1,at('->',nome_campo)-1) e faz o resto do trabalho; tipo: sele \\servidor repl.... commit sele local repl... commit return(.t.) acho que é por ai... espero ter ajudado, e peçp desculpas se falei besteira hehehehe Clipper 5.3; Fw195; Link Quote Link to comment Share on other sites More sharing options...
rmarra Posted August 6, 2009 Author Report Share Posted August 6, 2009 Obrigado fluna, acho que é algo por aà mesmo. Sei que vai dar trabalho, mas com o PAF temos que ter a opção do servidor cair continuar fazendo venda localmente. Um abraço! Rondinelli - Itaocara-RJ Clipper 5.3b, Fivewin 2.6, Blinker 7, WorkShop Quote Link to comment Share on other sites More sharing options...
Yury Posted August 6, 2009 Report Share Posted August 6, 2009 olá, uma opnião: trabalhe com a lógica contrária, ou seja, atualize primeiro um BD temporário na estação local e imediatamente após esta atualização na estação local que está fazendo a venda vc tenta atualizar no servidor, se conseguir, marque uma flag como ENVIADO na sua transação, se não conseguir, marque como NÃO ENVIADO faça uma rotina de uma forma que após cada transação realizada na estação de vendas sejam lidas as transações que estão como NÃO ENVIADO e tente enviar para o servior as transações não enviadas ficarão em uma fila de transações NÃO ENVIADAS por estação de venda, que poderão ser atualizadas quando o servidor voltar utilize um timer para varrer o BD temporário de tempo em tempo para verificar se há transações não enviadas e se consegue atualizar abraço Yury Marcelino Al Viman Sistemas vimansca@vimansca.com.br yury030575@yahoo.com.br (msn) skype: yury.marcelino.al Leme / SP FW 2.6 / [x]Harbour 99.50 / WS / xDev 0.65 / @say Quote Link to comment Share on other sites More sharing options...
vagner Posted August 6, 2009 Report Share Posted August 6, 2009 Olá, http://www.fivewin.com.br/exibedicas.asp?id=523 Veja que está em xHarbour, porém com alguma mudança vc pode colocar para clipper Esse é em clipper http://www.fivewin.com.br/exibedicas.asp?id=489 http://www.fivewin.com.br/exibedicas.asp?id=180 Vagner Wirts VI Encontro está chegando , não perca Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.