Pergunta

Eu estou trabalhando em um projeto que está prestes a começar, e desde que eu estava ocupado com outro meus colegas foi em frente e começou a trabalhar nas especificações para o novo. Quando eu entrei, eles tinham acabado escolhido para fazer a persistência com SQL simples (prontamente aceitou a minha sugestão para adicionar Hibernate, embora), mas insistiu em que a replicação de dados deve ser realizada usando uma ferramenta chamada Symmetric DS , de que eu nunca tinha ouvido falar.

Estou preocupado porque, tanto quanto eu sei, ter um servidor JBoss (planos atuais são para usar Tomcat apenas) com EJB3 cuida de toda a trabalheira transação / replicação, e deve nos poupar de um monte de dores de cabeça.

Como vocês ver este Symmetric DS ? (Note que eu não tenho nada contra ele qualquer, é só que eu sei JBoss ser em torno de um longo tempo e tem uma reputação muito respeitável)

Como você compararia as duas soluções?

Obrigado!

Editar : By the way, como é que SymmetricDS lidar com chaves primárias duplicados? Quer dizer, se eu adicionar uma linha no banco de dados Uma e outra no banco de dados B, ambos provavelmente será adicionado com a mesma chave primária, certo? Como é que SymmetricDS lidar com isso de forma a evitar conflitos? Este fórum de discussão parecia à primeira vista a abordar alguns dos que, mas não chega a responder à minha pergunta.

Foi útil?

Solução

Eu acho EJB e SymmetricDS estão tentando resolver problemas diferentes. EJB é uma estrutura que fornece (entre muitas coisas) persistência no banco de dados. SymmetricDS é uma aplicação que captura as alterações feitas em um banco de dados e aplica-los para outro banco de dados de forma assíncrona. Na verdade, os dois trabalham juntos, permitindo-lhe a persistir facilmente dados de um feijão de Java no banco de dados e tê-lo replicado para outros bancos de dados remotos.

Você pode implantar SymmetricDS para JBoss ou Tomcat (há autônomo e opções embutidas bem), e tudo o que preocupa é o banco de dados. Debaixo das cobertas, ele está usando o framework Spring para acessar o banco de dados. Ele instala gatilhos de banco de dados para mudanças de captura, e aplica-se alterações para o banco de dados destino exatamente da mesma maneira. Então, se as linhas A e B foram cometidos juntos no banco de dados origem, em seguida, eles se comprometem em conjunto sobre o alvo.

Espero que ajuda a esclarecer as duas tecnologias. Existe uma comunidade ativa no SourceForge para SymmetricDS que é mais do que feliz em responder perguntas e dar exemplos de implementações bem-sucedidas:

http://sourceforge.net/projects/symmetricds

Boa sorte em seu projeto!

Eric

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top