Clipper On Line • Ver Tópico - LetoDb e Harbour, como usar.

LetoDb e Harbour, como usar.

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

LetoDb e Harbour, como usar.

Mensagempor Itamar M. Lins Jr. » 26 Nov 2018 19:06

Ola!
R: Não, ou pelo menos algo que informe que a conexão caiu.

Vai aparecer uma msg de erro.
O quê informa quando a conexão cai é o ícone do windows ai de rede no canto inferior direito.
A conexão nunca cai. Se cair será por outros problemas, fio, hub, etc... e o windows irá informar isso, mesma coisa quando sai do ar a internet.
Se vc conectar no letodb pela manha quando chegar a noite vai está conectado da mesma forma, mesmo que não faça nada. Não desliga quando fica ocioso.
O servidor verifica processos ZUMBIS e fecha os arquivos sozinho se não houver resposta do cliente. Nisso tem um comando para mexer nesse "tempo" de verificação dos processos ZUMBIS.

Mas ainda não estou entendendo, se vc tem uma cópia LOCAL, para quê usar o LetoDbf ?
Acho que o amigo não leu meu codigo ou passou despercebido.

Li e acho que vc não está entendendo o seu próprio código.
#define FILE_LOCAL  "/home/bruno/server/banco.dbf"

Se esta pasta está em outra máquina, se a conexão cair não vai acessar o arquivo banco.dbf com ou sem Letodbf
Se está na mesma máquina e vc tira o cabo usando "192.168.0.1" não vai achar pelo LetoDbf, porque vc está usando o endereço da conexão física.
Se deseja arrancar o cabo e a conexão ficar funcionando use //127.0.0.1:2812/ ai até sem rede vai funcionar.
Sua maquina tem dois IPs, o da rede física "192..." e outro loopbak -> "//localhost:2812/" ou "//127.0.0.1:2812/".

Mesmo assim fica a dúvida de quantas maquinas irão acessar o DBF, já que vc tem copia local, não precisa de sincronicidade ?
Antes sua pasta era mapeada ? Não tô entendendo isso, tem uma cópia em cada computador ?

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

LetoDb e Harbour, como usar.

Mensagempor Itamar M. Lins Jr. » 26 Nov 2018 19:17

Ola!
R: Eu penso que eu tinha que ter pelo menos a chance de interceptar esse travamento.

Neste caso com "error block", "Begin Sequence" nos comandos que manipule os arquivos. Append, skip, rlock, unlock...
Ai chamando o leto_detect...
Porque o erro reportado pelo sistema será do RDD do Harbour, não do LetoDbf.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

LetoDb e Harbour, como usar.

Mensagempor bwr2018 » 27 Nov 2018 07:32

Vai aparecer uma msg de erro.
O quê informa quando a conexão cai é o ícone do windows ai de rede no canto inferior direito.

Não uso windows como citado na msg anterior.

Mas ainda não estou entendendo, se vc tem uma cópia LOCAL, para quê usar o LetoDbf ?

Justamente, para que se por algum motivo o servidor sair do ar eu tenha como opção partir de onde parou localmente.

Li e acho que vc não está entendendo o seu próprio código.

kkkk desculpe como todo respeito acho que não estou perdido no meu código.

Se esta pasta está em outra máquina, se a conexão cair não vai acessar o arquivo banco.dbf com ou sem Letodbf
Se está na mesma máquina e vc tira o cabo usando "192.168.0.1" não vai achar pelo LetoDbf, porque vc está usando o endereço da conexão física.

Amigo é bem simples de entender, não estou entendendo o por que de tantos "por que's" da sua parte embora estou aqui pedindo ajuda mas vou tentar explicar ponto a ponto aqui abaixo.

Sistema utilizado: Slackware 13.1
Maquinas na rede: No maximo 10
IP servidor: 192.168.0.1
Ip's clientes: 192.168.0.2 até o 10
Internet: Não
Como estou fazendo: Na maquina com o ip servidor eu inicio o serviço letodb, em seguida me conecto com a mesma. E então abro os 2 bancos, o do servidor e o local.
./usr/local/bin/letodb
leto_connect("//192.168.0.1:2812/")
USE BCLOCAL.DBF EXCLUSIVE NEW ALIAS W
USE BANCO.DBF SHARED NEW ALIAS LAN

Na primeira maquina cliente com o ip 192.168.0.2, não iniciou o letodb somente me conecto a ela e abro o banco de dados no servidor e o banco local.
leto_connect("//192.168.0.1:2812/")
USE BCLOCAL.DBF EXCLUSIVE NEW ALIAS W
USE BANCO.DBF SHARED NEW ALIAS LAN

Blz? A esse ponto ja estou com 2 maquinas funcionando compartilhando o mesmo banco de dados.
Agora em um loop nas duas maquinas eu faço os incrementos dos campos. Tanto no banco do servidor quanto no local.
Por que tbm no local? Explicando, por que foi uma maneira que pensei em fazer o sistema partir de onde parou quando estava conectado ao servidor continuar trabalhando localmente.

Se deseja arrancar o cabo e a conexão ficar funcionando use //127.0.0.1:2812/ ai até sem rede vai funcionar.

Eu não pretendo arrancar o cabo! Isso foi apenas um teste. Foi quando notei o problema de travar a estação. E então resolvi perguntar aqui no forum se isso era normal, se tinha alguma solução etc etc.

Sua maquina tem dois IPs, o da rede física "192..." e outro loopbak -> "//localhost:2812/" ou "//127.0.0.1:2812/".

Não desejo usar o loopback. Não vejo sentido em usar letodb com loopback.

Mesmo assim fica a dúvida de quantas maquinas irão acessar o DBF, já que vc tem copia local, não precisa de sincronicidade ?

Maximo 10 maquinas, como citado acima eu fiz isso pq achei essa maneira de se por acaso o servidor sair do ar eu continuo trabalhando localmente, e na proxima sincronização com o servidor eu cruzo os dados, vejo quanto tem no local e quanto tem no servidor. Sendo assim o local vai ser maior eu apenas pego a diferença e atualizo o servidor.

Antes sua pasta era mapeada ? Não tô entendendo isso, tem uma cópia em cada computador ?

Não sei o que quer dizer "mapeada" talvez seja um local pré definido? Se for isso, sim sempre definido esse local para o banco do servidor. E sim tem uma copia em cada computador.
bwr2018
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 07 Nov 2018 15:24
Cidade/Estado: São Paulo
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

LetoDb e Harbour, como usar.

Mensagempor bwr2018 » 27 Nov 2018 07:36

Neste caso com "error block", "Begin Sequence" nos comandos que manipule os arquivos. Append, skip, rlock, unlock...
Ai chamando o leto_detect...
Porque o erro reportado pelo sistema será do RDD do Harbour, não do LetoDbf.


Eu não sei fazer isso, se te for possível postar um exemplo fico imensamente grato!
bwr2018
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 07 Nov 2018 15:24
Cidade/Estado: São Paulo
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

LetoDb e Harbour, como usar.

Mensagempor asimoes » 27 Nov 2018 08:53

bwr2018 escreveu:
Neste caso com "error block", "Begin Sequence" nos comandos que manipule os arquivos. Append, skip, rlock, unlock...
Ai chamando o leto_detect...
Porque o erro reportado pelo sistema será do RDD do Harbour, não do LetoDbf.


Eu não sei fazer isso, se te for possível postar um exemplo fico imensamente grato!


Perguntas, você herdou esse sistema ? tem alguma experiência na linguagem ? esses comandos que o Itamar mostrou são básicos do clipper/harbour, exceto o leto_*
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4179
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 292 vezes
Mens.Curtidas: 209 vezes

LetoDb e Harbour, como usar.

Mensagempor Itamar M. Lins Jr. » 27 Nov 2018 10:00

Ola!
embora estou aqui pedindo ajuda mas vou tentar explicar ponto a ponto aqui abaixo.

A AJUDA para estar correta vai depender de informações BÁSICAS.

Pq as informações vem a conta gotas. Se tivesse descrito todo o seu cenário, teríamos avançado mais.
usando um distro linux slackware 13.1
Realmente não lembro de ter lido esta parte, li as outras que posta seu código.

a) As outras máquinas estão rodando windows ?
a.b) Vc compartilha o DBF com SAMBA ?
c) Se usa PUTTY ou outro tipo de terminal nas estações se tem alguma com windows ?
Como vc vai copiar/sincronizar o DBF para o servidor no caso de queda da rede ? Pq o LetoDbf Só vai cair se derrubarem ele via KILL ou falha física da rede

Eu estou entendendo o seguinte: Atualizar o DBF no Servidor via LetoDb e atualizar no Servidor na pasta \home\... e puxar o DBF para cada estação para ter a sincronicidade ok ?

Se a rede cair como vc vai saber onde está cada dado(informação) em cada estação ? Para depois aglutinar no servidor ?

Quando a rede cair, se for APENAS um TOTALIZADOR e vc precisar saber onde está a informação mais atualizada o maior contador de cada estação para depois copiar para o servidor, saber qual das 10 estações está com o DBF mais atualizado para gravar no servidor. Com a rede offline como faz isso ?

As perguntas que faço não são por curiosidade. E que cada uma traz uma informação para responder o problema apresentado.
A) LetoDBf com SAMBA precisa de configuração especial.
B) Se acessa via algum tipo de terminal não tem windows é tudo LINUX, não tem vantagem nenhuma usar LetoDBf.
Se está tudo na pasta \home... no servidor e acessa via SSH ou PUTTY ou qualquer das várias opções existentes (TERMINAL) tipo WTS (Windows Terminal Service) não vejo vantagem de usar LetoDbf.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

LetoDb e Harbour, como usar.

Mensagempor Itamar M. Lins Jr. » 27 Nov 2018 11:59

Ola!
Seu código:
#define FILE_LOCAL "/home/bruno/server/banco.dbf"

Eu estou entendendo que nas 10 maquinas existe esta pasta. Acesso LOCAL.
Depois vc informa assim:

Na primeira maquina cliente com o ip 192.168.0.2, não iniciou o letodb somente me conecto a ela e abro o banco de dados no servidor e o banco local.
leto_connect("//192.168.0.1:2812/")
USE BCLOCAL.DBF EXCLUSIVE NEW ALIAS W
USE BANCO.DBF SHARED NEW ALIAS LAN


Aqui já outro cenário. Dois arquivos DBF´s diferentes. BCLOCAL.DBF e BANCO.DBF. Já fico sem entender, esse LOCAL está onde ? No servidor ou na estação ?
Se está na estação as atualizações da outras 9 máquinas como fica para saber quando ou o quê sincronizar em caso da rede esta off line ?
Seu letodb.ini tem isso:
DataPath = /home/bruno/server

Nisso eu entendo que ora LOCAL está tudo no próprio servidor (192.168.0.1) e vc acessa via SSH por exemplo, e ora LOCAL está espalhado pelas 10 estações.
Ou as 3 opções. 1 é o acesso com letodb, 2 é via SSH, etc.. e 3 tem uma cópia em cada estação no caso de queda de rede.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 3719
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 127 vezes
Mens.Curtidas: 192 vezes

LetoDb e Harbour, como usar.

Mensagempor bwr2018 » 27 Nov 2018 15:44

asimoes escreveu:Perguntas, você herdou esse sistema ? tem alguma experiência na linguagem ? esses comandos que o Itamar mostrou são básicos do clipper/harbour, exceto o leto_*


1 - Não herdei.
2 - Sim, não tanto quanto vcs.
bwr2018
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 07 Nov 2018 15:24
Cidade/Estado: São Paulo
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

LetoDb e Harbour, como usar.

Mensagempor bwr2018 » 27 Nov 2018 15:51

Itamar M. Lins Jr. escreveu:Seu código:
#define FILE_LOCAL "/home/bruno/server/banco.dbf"

Eu estou entendendo que nas 10 maquinas existe esta pasta. Acesso LOCAL.
Depois vc informa assim:

Na primeira maquina cliente com o ip 192.168.0.2, não iniciou o letodb somente me conecto a ela e abro o banco de dados no servidor e o banco local.
leto_connect("//192.168.0.1:2812/")
USE BCLOCAL.DBF EXCLUSIVE NEW ALIAS W
USE BANCO.DBF SHARED NEW ALIAS LAN


Aqui já outro cenário. Dois arquivos DBF´s diferentes. BCLOCAL.DBF e BANCO.DBF. Já fico sem entender, esse LOCAL está onde ? No servidor ou na estação ?
Se está na estação as atualizações da outras 9 máquinas como fica para saber quando ou o quê sincronizar em caso da rede esta off line ?
Seu letodb.ini tem isso:
DataPath = /home/bruno/server

Nisso eu entendo que ora LOCAL está tudo no próprio servidor (192.168.0.1) e vc acessa via SSH por exemplo, e ora LOCAL está espalhado pelas 10 estações.
Ou as 3 opções. 1 é o acesso com letodb, 2 é via SSH, etc.. e 3 tem uma cópia em cada estação no caso de queda de rede.

Saudações,
Itamar M. Lins Jr.


Bem, se teve algumas divergências. Claro que sim pq apesar estar postando as duvidas aqui, eu não estou de braços cruzados esperando cair do céu o código em teste está em constante mudança aqui. Mas penso que são coisas tão pequenas que não deveria ser levado em consideração. Mas se ficar melhor eu vou postando aqui todo update. Enquanto isso vou tentando responder a duvida de todos vcs que estão dispostos a ajudar.
bwr2018
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 07 Nov 2018 15:24
Cidade/Estado: São Paulo
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

LetoDb e Harbour, como usar.

Mensagempor bwr2018 » 27 Nov 2018 16:17

Itamar M. Lins Jr. escreveu:a) As outras máquinas estão rodando windows ?
a.b) Vc compartilha o DBF com SAMBA ?
c) Se usa PUTTY ou outro tipo de terminal nas estações se tem alguma com windows ?


a) As 3 maquinas que estou testando estão com o mesmo sistema.
a.b) Não.
c) Não
Itamar M. Lins Jr. escreveu:Como vc vai copiar/sincronizar o DBF para o servidor no caso de queda da rede ?

R: Eu não preciso copiar nada, enquanto a conexão esta viva eu tenho os mesmos registros tanto no servidor como no local. No código esta descrito isso.

Itamar M. Lins Jr. escreveu:Pq o LetoDbf Só vai cair se derrubarem ele via KILL ou falha física da rede.

R: Nem por falha fisica ele apenas desconecta o ip enquanto não dou um "letodb stop" ele realmente não para.

Itamar M. Lins Jr. escreveu:Eu estou entendendo o seguinte: Atualizar o DBF no Servidor via LetoDb e atualizar no Servidor na pasta \home\... e puxar o DBF para cada estação para ter a sincronicidade ok ?

R: Não, a atualização acontece nos dois bancos enquanto a conexão esta ativa. Se a conexão se perde é ai que entra o pulo do gato que estou querendo fazer. Eu preciso de alguma maneira fazer com que a estação enxergue que a conexão caiu sem travar. A partir do momento que ela enteder isso basta eu finalizar o banco aberto no servidor e dar select somente no banco local e tudo continura funcionando como se nada tivesse acontecido.

Itamar M. Lins Jr. escreveu:Se a rede cair como vc vai saber onde está cada dado(informação) em cada estação ? Para depois aglutinar no servidor ?

R: Todas estações estaram com os mesmos dados que o servidor tem. Quando a conexão voltar basta comparar o banco local com o do servidor e ver o que o servidor perdeu de incremento durante o tempo que ele ficou fora e gravar as diferenças.

Itamar M. Lins Jr. escreveu:Quando a rede cair, se for APENAS um TOTALIZADOR e vc precisar saber onde está a informação mais atualizada o maior contador de cada estação para depois copiar para o servidor, saber qual das 10 estações está com o DBF mais atualizado para gravar no servidor. Com a rede offline como faz isso?

R: A mesma resposta acima, pegando as diferenças. Se o servidor parou com 10 as estações seguiram digamos que uma foi ate o 20 a outra até o 30. A primeira vai iniciar e ja vai gravar no servidor sua diferença 20 - 10 = 10 logo o servidor estara com 20. Segunda inicia vai fazer a mesma coisa o servidor estará com 20 já que a primeira ja gravou sua diferença então 30 - 20 = 10 logo o servidor estara com 30 tbm.

Itamar M. Lins Jr. escreveu:As perguntas que faço não são por curiosidade. E que cada uma traz uma informação para responder o problema apresentado.
A) LetoDBf com SAMBA precisa de configuração especial.
B) Se acessa via algum tipo de terminal não tem windows é tudo LINUX, não tem vantagem nenhuma usar LetoDBf.
Se está tudo na pasta \home... no servidor e acessa via SSH ou PUTTY ou qualquer das várias opções existentes (TERMINAL) tipo WTS (Windows Terminal Service) não vejo vantagem de usar LetoDbf.

R: a) Não uso samba.
R: b) Bem eu não sei de outra maneira de acessar um banco de dados de outra maquina sem o leto, ou hbnetio que foi minha primeira tentativa.
R: c) Não sei, mas acho que precisa de internet né?
bwr2018
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 20
Data de registro: 07 Nov 2018 15:24
Cidade/Estado: São Paulo
Curtiu: 4 vezes
Mens.Curtidas: 0 vez

Anterior



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro