Meta Daten caching steuern

Dokumente für die Entwicklung von und mit JVx.

Meta Daten caching steuern

Postby Development@SIB » Wed Mar 31, 2010 4:33 pm

Eine Datenbank Anwendung benötigt stets Meta Daten in denen einzelne Spalten definiert und beschrieben werden. Es wird z.B. festgelegt welche Spalte der Primärschlüssel ist, von welchem Datentyp die Spalte ist und ev. auch die Länge und ob die Spalte Null Werte annehmen darf. All diese Informationen werden Meta Daten genannt.

Von JVx werden die Meta Daten vollautomatisch aus der Datenbank übernommen. Dadürch müssen nicht unbedingt Domänenmodelle erstellt werden, hindert aber auch niemanden daran, das zu tun.

Damit das User Interface ordnungsgemäß arbeiten kann, weil z.B in einer numerischen Spalte keine Buchstaben eingegeben werden dürfen, werden auch dort die Meta Daten benötigt. Die Meta Daten müssen also vom Server zum Client übertragen werden. Und das natürlich pro Server Objekt.
Der notwendige Request und natürlich auch die Datenübertragung, nehmen etwas Zeit in Anspruch und im produktiven Betrieb könnte auf diesen Performance Verlust, problemlos verzichtet werden.

Aus diesem Grund gibt es in JVx einen vollautomatischen Meta Daten Cache.

Dieser Cache unterstützt mehrere Modi:

  • Global
    Der Cache arbeitet pro VM Instanz, statisch. Je nachdem wie der Cache befüllt wird (dynamisch oder vorbelegt). Im Idealfall ist nur 1 Request für die Meta Daten aller Server Objekte, der gesamten Anwendung, nötig.
  • DataSource
    Der Cache ist an eine DataSource gebunden und die Meta Daten alle Server Objekte werden durch 1 Request übertragen. Pro DataSource ist somit 1 Request für die Meta Daten notwendig.
  • Off
    Deaktiviert den Meta Daten Cache und pro Server Objekt wird 1 Meta Daten Request benötigt

Der Cache wird mit folgender Methode konfiguriert:

Code: Select all
RemoteDataSource.setMetaDataCacheRole(MetaDataCacheRole)


Der globale Cache ist mit folgenden Methoden ansprechbar:

Code: Select all
//put meta data to the global cache
RemoteDataSource.putGlobalMetaData(String, MetaData)

//get meta data from the global cache
RemoteDataSource.getGlobalMetaData(String)


Der DataSource Cache ist, pro RemoteDataSource Instanz, mit folgenden Methoden ansprechbar:

Code: Select all
//put datasource meta data
dataSource.putMetaData(String, MetaData)

//get datasource meta data
dataSource.getMetaData(String)


Hinweis

Der Meta Daten Cache wird am Server dynamisch aufgebaut und kontinuierlich aktualisiert. Damit der Cache aufgebaut werden kann, muss nach dem Start des Applikations Servers das User Interface auf die Server Objekte zugreifen.
User avatar
Development@SIB
 
Posts: 311
Joined: Mon Sep 28, 2009 1:54 pm

Return to Dokumentation