Trace: • Meta Daten caching steuern
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:
RemoteDataSource.setMetaDataCacheRole(MetaDataCacheRole);
Der globale Cache ist mit folgenden Methoden ansprechbar:
//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:
//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.