Sincronia de dados com HSQLDB

Falae galera!

O contexto é o seguinte:
Um banco local, uma base remota e uma base "móvel" (que pode ser xml, não esta definido ainda).
Posso ter alteração dos dados nesses 3 bancos, pode ser, mas não necessariamente essas alterações seriam simultâneas.

Funcionamento:
Banco local -&gt sincroniza para -&gt banco remoto
Banco remoto -&gt sincroniza para -&gt banco local
Banco remoto -&gt sincroniza para -&gt banco móvel
Banco móvel -&gt sincroniza para -&gt banco remoto

O HSQLDB me da algum tipo de recurso específico pra trabalhar com sincroniza de dados? como seria uma boa maneira de "administrar" essas possíveis mudanças/diferenças nos bancos?

Se ficou meio complicado de entender eu tento explicar denovo… rs

valeu!

[quote=Luiz Aguiar]Falae galera!

O contexto é o seguinte:
Um banco local, uma base remota e uma base "móvel" (que pode ser xml, não esta definido ainda).
Posso ter alteração dos dados nesses 3 bancos, pode ser, mas não necessariamente essas alterações seriam simultâneas.

Funcionamento:
Banco local -&gt sincroniza para -&gt banco remoto
Banco remoto -&gt sincroniza para -&gt banco local
Banco remoto -&gt sincroniza para -&gt banco móvel
Banco móvel -&gt sincroniza para -&gt banco remoto

O HSQLDB me da algum tipo de recurso específico pra trabalhar com sincroniza de dados? como seria uma boa maneira de "administrar" essas possíveis mudanças/diferenças nos bancos?

Se ficou meio complicado de entender eu tento explicar denovo… rs

valeu![/quote]
Use o pattern observator.

só para eu entender e estudar as possibilidades, gostei da forma de gerenciamento… tinhaisso em mente mas não sabia como implementar…
ql será o seu critério para atualizações??
data?
e quem será o banco de dados prioritário? o remoto? é ele que sempre terá que ser o mais atual?

uma idéia, que é o que eu faria, com qualquer banco, é comparar as tabelas, lógico que quando tivesse muitos dados isso me acarretaria problemas, imagine varrer 10000 registros e atualizar os que foram modificados e adicionar os novos pra manter sincronia… demoraria um bocado…
enfim…

[]'s

(na verdade este post é um pensamento escrito… acho que não te ajudou em nada neh? =])

Luiz:
http://hsqldb.sourceforge.net/doc/guide/apc.html

[quote]test.log

This file contains the extra SQL statements that have modified the database since the last checkpoint (something like the 'Redo-log' or 'Transaction-log', but just text). [/quote]

:smiley:

Na verdade, meu “problema” está sendo numa situação por exemplo assim:

as 22hs, vc no seu notebook, ta dando aquela aliviada no banheiro, e lançando seus gastos diários… 5 débitos
as 22:15hs sua esposa ta voltando do mercado, e pelo celular lançou (e atualizou pra base remota) mais 3 débitos e 1 crédito (vamos supor que ela ganhou no jogo do bixo hehe)

Ai vc vai querer lá pelas 23hs quando saiu do banho, sincronizar tudo isso… mandar o seus lançamentos locais pra base remota, e baixar os lançamentos da base remota pra sua local… mantendo os dados que foram lançados em ambos os bancos, ai que ta o ponto onde cheguei… fazer esse “merge”.
É isso :slight_smile:

Cara, o arquivo .log fica com todos os sqls executados guardados. Então bastaria pegar as queries do arquivo e re-executa-las nas outras máquinas.
Mas atente que infelizmente os timestamps das queries não é guardado.

Tem até um comando Merge que ajudaria nesta tarefa:
http://www.h2database.com/html/frame.html?grammar.html&main

Interessante esta questão… já tive um problema semelhante… mas não cheguei a uma solução decente. :mrgreen:

Pesquisando agora rapidamente encontrei este projeto: Daffodil Replicator

Se chegares a uma boa solução, usando ou não ferramentas de terceiros, gostaria de saber como foi feito. :slight_smile:

Não é o caso! Estamos falando de banco de dados, não de objetos. E a sincronização não seria em ‘tempo real’, mas em horário aleatório, com uma quantidade aleatória de dados.

[quote=LIPE]Cara, o arquivo .log fica com todos os sqls executados guardados. Então bastaria pegar as queries do arquivo e re-executa-las nas outras máquinas.
Mas atente que infelizmente os timestamps das queries não é guardado.

Tem até um comando Merge que ajudaria nesta tarefa:
http://www.h2database.com/html/frame.html?grammar.html&main[/quote]
Boa LIPE, vou realmente dar uma estudada no uso desse log das queries.

Valeu!