Automatischer DB-Refresh der Daten auf dem Client

Wie oft steht man vor dem Problem eine Architektur zu entwickeln, die Performant sein soll und gleichzeitig die Daten auf Client/Middletierseite aktuelle sein müssen. Übliche Lösungen setzden deshalb auf Client/MiddleTier-Seite Caches wie EHCache unter Hibernate oder JDBC oder ähnliches ein. Der Refresh erfolgt dann zyklisch per Poll oder Löschen ALLER Objekte im Cache.  

Mit Oracle Database Change Notification lässt sich dies jetzt eleganter lösen. DB-Änderungen werden nun satzgenau dem Client per Notification übermittelt. Im OTN existert dazu ein Beispiel für die 11g DB. Der Mechanismus funktioniert jedoch auch schon mit der Oracle XE DB Version 10.2 und dem ojdbc5 Treiber (dieser ist z.B. im 11g Jdeveloper enthalten).
Das im OTN veröffentliche Beispiel „Oracle Database Change Notification
muss dann jedoch die Methode „onDatabaseChangeNotification“ wie folgt ersetzen:


public void onDatabaseChangeNotification(DatabaseChangeEvent e)
{
/* QueryChangeDescription [] changes = e.getQueryChangeDescription();
// Object ox = e.getTableChangeDescription();
// QueryChangeDescription change = changes[0];
*/
TableChangeDescription [] tableChanges = e.getTableChangeDescription();
TableChangeDescription tableChange = tableChanges[0];
RowChangeDescription[] rowChanges = tableChange.getRowChangeDescription();
RowChangeDescription rowChange = rowChanges[0];
oracle.sql.ROWID rowid = rowChange.getRowid();
demo.getUpdateForROWID( rowid );
}
}

Advertisements

~ von bmaier - 18. Juni 2008.

Kommentar verfassen

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

 
%d Bloggern gefällt das: