[firebase-br] Dúvida com transação x refresh

Tecnobyte Informática temp2 em tecnobyte.com.br
Qui Abr 14 15:45:08 -03 2011


Eu já fiz um sistema de PDV que trabalhava de forma semelhante ao que você 
faz aí. No meu sistema a lógica era esta abaixo:

1. Em cada estação PDV existe um banco de dados local, contendo tabelas de 
produtos, vendas, etc.

2. No servidor, todas as alterações feitas nas tabelas produtos e outros 
cadastros relacionados com vendas são monitoradas através de trigger, 
gerando um log dos registros alterados.

3. Antes de iniciar uma nova venda, o sistema de PDV verifica a conexão com 
servidor usando uma esquema parecido com PING Em vez de um ping normal, fiz 
uma espécie de ping direto na porta 3050 para saber se o FB está 
respondendo, pois é muito mais rápido que fazer uma conexão com o FB. De 
qualquer forma um ping comum também resolve quase perfeitamente. Se o 
servidor estiver online, é feita uma conexão com o banco de dados do 
servidor para buscar todas as alterações novas das tabelas produtos, etc e 
gravar nas tabelas do banco local.

4. No final da venda o sistema do PDV novamente verifica a conexão com o 
servidor. Se estiver online, transmite para o servidor todas as vendas que 
ainda não foram transmitads. Também usei commit de duas fases para garantir 
a integridade nos dois bancos de dados. Ficou perfeito assim! O tempo 
necessário para verificar a conexão usando ping ou similar é realmente muito 
curto e não chega a atrapalhar o PDV.


Atenciosamente.

Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br






Mais detalhes sobre a lista de discussão lista