Domanda

Sto lavorando a un progetto che sta per iniziare e, dato che ero impegnato con un altro, i miei colleghi sono andati avanti e hanno iniziato a lavorare sulle specifiche per il nuovo. Quando sono arrivato, avevano appena scelto di perseverare con il semplice SQL (accettando prontamente il mio suggerimento di aggiungere Hibernate, però) ma hanno insistito sul fatto che la replica dei dati doveva essere eseguita utilizzando uno strumento chiamato Symmetric DS , di di cui non avevo mai sentito parlare.

Sono preoccupato perché, per quanto ne so, avere un server JBoss (i piani attuali sono di utilizzare solo Tomcat) con EJB3 gestisce tutta la seccatura di transazione / replica e dovrebbe risparmiarci molti mal di testa.

Come vedete questo DS simmetrico ? (nota che non ho nulla contro di esso, è solo che so che JBoss è in circolazione da molto tempo e ha una reputazione abbastanza rispettabile)

Come confronteresti le due soluzioni?

Grazie!

Modifica : A proposito, come gestisce SymmetricDS con chiavi primarie duplicate? Voglio dire, se aggiungo una riga nel database A e un'altra nel database B, entrambi verranno probabilmente aggiunti con la stessa chiave primaria, giusto? Come lo gestisce SymmetricDS per evitare conflitti? Questa discussione sul forum sembrava inizialmente affrontare un po 'di questo, ma non risponde alla mia domanda.

È stato utile?

Soluzione

Penso che EJB e SymmetricDS stiano cercando di risolvere diversi problemi. EJB è un framework che fornisce (tra le altre cose) persistenza al database. SymmetricDS è un'applicazione che acquisisce le modifiche apportate a un database e le applica a un altro database in modo asincrono. In effetti, i due lavorano insieme, consentendo di mantenere facilmente i dati da un bean Java al database e di replicarli in altri database remoti.

Puoi distribuire SymmetricDS su JBoss o Tomcat (ci sono anche opzioni standalone e integrate), e tutto ciò che interessa è il database. Sotto le coperte, sta usando il framework Spring per accedere al database. Installa i trigger del database per acquisire le modifiche e applica le modifiche al database di destinazione esattamente allo stesso modo. Pertanto, se le righe A e B sono state impegnate insieme nel database di origine, si impegnano insieme sulla destinazione.

Spero che ciò aiuti a chiarire le due tecnologie. Esiste una community attiva su SourceForge per SymmetricDS che è più che felice di rispondere alle domande e fornire esempi di implementazioni di successo:

http://sourceforge.net/projects/symmetricds

Buona fortuna per il tuo progetto!

Eric

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top