[firebase-br] [OFF TOPIC] Sincronização entre Bancos diferentes.

Evandro Siqueira vansiqq em gmail.com
Qui Abr 17 07:09:46 -03 2008


Deixem eu me explicar melhor:

A rotina é uma geração de pedidos de mercadorias on-line. Esses pedidos são
baseados em uma grade de cores e tamanhos. então eu posso ter para um mesmo
produto, n cores e n tamanhos. Nós não trabalhamos com limitação de saldo de
estoque. Se não tem em estoque, mandamos fabricar na hora.

Quando o vendedor solicita determinado produto em determinada cor e tamanho,
o sistema verifica se tem no estoque. Se tem  gera a reserva para o
faturamento, providencia a baixa no estoque, faz toda a atualização do
sistema financeiro e etc... Se não tem, ele gera a ordem de produção, põe o
o produto em espera até que o processo produtivo libere a mercadoria e
executa os procedimentos normais. Isso para cada ítem solicitado, numa linha
de (hoje) 150 produtos. O Banco local possui uma série de triggers e stored
procedures que provêem estes processos. A rotina de sincronização faz apenas
um insert para o pedido e um insert para cada ítem do pedido dentro de uma
transação que poderá ser comitada ou cancelada, porque todos os processos
devem ser rodados. Não posso afirmar que esse processo demora exatamente 1
minuto. As vezes pode ser uma transação rápida, de apenas alguns segundos
mas, dependendo do tamanho do pedido ela pode sim, ultrapassar o um minuto.

Todas as tabelas envolvidas no processo em ambos os bancos tem um campo
timestamp para gravar o momento da atualização ou inserção. E tenho uma
tabela que grava a data e hora da última sincronização.

A rotina de sincronização funciona em uma thread que em ambos os lados
seleciona os registros alterados/inseridos desde a última sincronização e
atualiza o site e/ou o sistema com as novas informações.

Nos testes que fizemos com um servidor web interno funciona
maravilhosamente. O problema é quando colocamos no site por causa do bendito
do time-out.

Fico grato pelo interesse dos colegas e, como disse qualquer sugestão será
muito bem vinda.

Evandro Siqueira

Em 16/04/08, Ronaldo (NR) <ronaldo em nr.com.br> escreveu:
>
> esta rotina roda a cada atualização de registro na aplicação em firebird ?
>
>
> ----- Original Message -----
> From: "Kleber Caneva" <kdcc em terra.com.br>
> To: "FireBase" <lista em firebase.com.br>
>
> Sent: Wednesday, April 16, 2008 4:11 PM
> Subject: Re: [firebase-br][OFF TOPIC] Sincronização entre Bancos
> diferentes.
>
>
> Evandro,
>
> Não sei como resolver seu problema, mas já pensou na hipótese de trocar de
> provedor ?
>
> Um provedor que não se importa de perder clientes pode ser um problema.
> Pelo
> menos ele justifica o porque ?
>
> []´s
>
> Kléber Caneva
>
>
> ----- Original Message -----
> From: "Evandro Siqueira" <vansiqq em gmail.com>
> To: "FireBase" <lista em firebase.com.br>
> Sent: Wednesday, April 16, 2008 8:55 AM
> Subject: [firebase-br] [OFF TOPIC] Sincronização entre Bancos diferentes.
>
>
> Bom dia, pessoal.
>
> Estou com um probleminha que acredito que é off, portanto me perdoem
> antecipadamente por ele. Mas o problema é o seguinte.
> temos um aplicativo na web que funciona com um banco mySQL e recebe
> informações de sincronização do meu banco FB na seguinte forma:
>
> 1) Verifica se há alterações no sistema local (FB) -> Atualiza a base do
> site (mySQL)
> 2) Verifica se há alterações no site(mySQL -> Atualiza a base local (FB)
>
> O passo 1 está funcionando beleza. o problema é no passo 2, pq o provedor
> tem um time out no servidor mysql e durante o processamento a conexão
> mySQL
> cai.
>
> Algum dos nobres colegas tem alguma sugestão de como eu poderia:
>
> 1) manter a conexão persistente ou
> 2) detectar quando a conexão cai e reconectar?
>
> Pedir para desativar o time out está fora de questão. O provedor não
> desativa nem que perca o cliente.
>
> Obrigado pelas sugestões.
>
> --
> Evandro Siqueira
> Programador
> Aracaju/SE
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
> E-mail verificado pelo Terra Anti-Spam.
> Para classificar como spam, visite
>
> http://mail.terra.com.br/cgi-bin/reportspam.cgi?+_d=UyY0NDU0NzM0I3Blcm0hdGVycmEmMSwxMjA4MzQ3MDAwLjY3Njc3My4yMjMyOC5jb3Ntb2xlZG8uaHN0LnRlcnJhLmNvbS5iciw0MzQ4
> Verifique periodicamente a pasta Spam para garantir que apenas mensagens
> indesejadas sejam classificadas como Spam.
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Evandro Siqueira
Programador
Aracaju/SE



Mais detalhes sobre a lista de discussão lista