Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Snapshot Replication db4o Kacper Skory Marcin Talarek.

Podobne prezentacje


Prezentacja na temat: "Snapshot Replication db4o Kacper Skory Marcin Talarek."— Zapis prezentacji:

1 Snapshot Replication db4o Kacper Skory Marcin Talarek

2 Replikacja Powielanie zmian w bazie danych do innych baz. np. z bazy lokalnej na ogólnodostępną

3 Biblioteki db4o-8.0/lib/db4o all- java5.jar drs-8.0/lib/dRS core.jar db4o Replication System Do pobrania ze strony producenta db4o.com

4 Klasa przykładowa Car public Pilot getPilot() { return pilot; } public void setPilot(Pilot pilot) { this.pilot = pilot; public String toString() { return "Car [name=" + name + ", pilot=" + pilot + "]"; } package zsbd.db4o.replication.snapshot.example; public class Car { private String name; private Pilot pilot; public Car(Pilot pilot, String name) { this.pilot = pilot; this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; }

5 Klasa przykładowa Pilot package zsbd.db4o.replication.snapshot.example; public class Pilot { private String name; private int points; public Pilot(String name, int points) { super(); this.name = name; this.points = points; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPoints() { return points; } public void setPoints(int points) { this.points = points; public String toString() { return "Pilot [name=" + name + ", points=" + points + "]"; }

6 Konfiguracja EmbeddedConfiguration configuration = Db4oEmbedded.newConfiguration(); Generowanie UUID w celu identyfikacji obiektów między bazami. configuration.file().generateUUIDs(ConfigScope.GLOBALLY); Generowanie znaczników czasowych, aby odnajdywać zmiany. configuration.file().generateCommitTimestamps (true);

7 Replikacja w jedną stronę 1. Tworzenie sesji replikacji dla baz biorących udział w replikacji 2. Ustalanie kierunku replikacji 3. Pobranie zmian od ostatniej replikacji 4. Replikacja zmienionych obiektów 5. Zatwierdzenie sesji

8 Replikacja w jedną stronę Db4oEmbeddedReplicationProvider providerA = new Db4oEmbeddedReplicationProvider(sourceDatabase); Db4oEmbeddedReplicationProvider providerB = new Db4oEmbeddedReplicationProvider(destinationDatabase); ReplicationSession replicationSession = Replication.begin(providerA, providerB); replicationSession.setDirection(replicationSession.providerA(), replicationSession.providerB()); ObjectSet changes = replicationSession.providerA().objectsChangedSinceLastReplication(); for (Object changedObject : changes) { replicationSession.replicate(changedObject); } replicationSession.commit();

9 Replikacja w obie strony 1. Tworzenie sesji replikacji dla baz biorących udział w replikacji. 2. Pobranie zmian od ostatniej replikacji dla obu partnerów replikacji. 3. Replikacja zmienionych obiektów

10 Replikacja w obie strony Db4oEmbeddedReplicationProvider providerA = new Db4oEmbeddedReplicationProvider(database1); Db4oEmbeddedReplicationProvider providerB = new Db4oEmbeddedReplicationProvider(database2); ReplicationSession replicationSession = Replication.begin(providerA, providerB); ObjectSet changes1 = replicationSession.providerA().objectsChangedSinceLastReplication(); ObjectSet changes2 = replicationSession.providerB().objectsChangedSinceLastReplication(); for (Object changedObjectOnDesktop : changes1) { replicationSession.replicate(changedObjectOnDesktop); } for (Object changedObjectOnMobile : changes2) { replicationSession.replicate(changedObjectOnMobile); } replicationSession.commit();

11 Replikacja w jedna stronę z ograniczeniem co do klasy 1. Tworzenie sesji replikacji dla baz biorących udział w replikacji 2. Ustalanie kierunku replikacji 3. Pobranie zmian od ostatniej replikacji. Tylko zmiany obiektów klasy podanej jako argument. 4. Replikacja zmienionych obiektów 5. Zatwierdzenie sesji.

12 Replikacja w jedna stronę z ograniczeniem co do klasy Db4oEmbeddedReplicationProvider providerA = new Db4oEmbeddedReplicationProvider(sourceDatabase); Db4oEmbeddedReplicationProvider providerB = new Db4oEmbeddedReplicationProvider(destinationDatabase); ReplicationSession replicationSession = Replication.begin(providerA, providerB); replicationSession.setDirection(replicationSession.providerA(), replicationSession.providerB()); ObjectSet changes = replicationSession.providerA().objectsChangedSinceLastReplication(clazz); //Car.class for (Object changedObject : changes) { // tutaj mogą znalesc sie dodatkowe warunki (np if // (((Person)changedObject).getName().equals("Kowalski))... ) replicationSession.replicate(changedObject); } replicationSession.commit();

13 Replikacja usunięć 1. Tworzenie sesji replikacji dla baz biorących udział w replikacji 2. Replikacja usunięć

14 Replikacja usunięć Db4oEmbeddedReplicationProvider providerA = new Db4oEmbeddedReplicationProvider(database1); Db4oEmbeddedReplicationProvider providerB = new Db4oEmbeddedReplicationProvider(database2); ReplicationSession replicationSession = Replication.begin(providerA, providerB); replicationSession.replicateDeletions(clazz); replicationSession.commit();


Pobierz ppt "Snapshot Replication db4o Kacper Skory Marcin Talarek."

Podobne prezentacje


Reklamy Google