Ruhezustand der zweiten Ebene

Hibernate ist eine beliebte objektrelationale Open-Source-Mapping-Lösung für Java. Zwecks Leistungssteigerung bietet Hibernate auch die Funktion des Cachings. Hibernate bietet zwei Arten von Caching, First Level Cache und Second Level Cache.

Der First-Level-Cache ist integriert und wird standardmäßig verwendet, ist jedoch in der Verwendung eingeschränkt, nicht zugänglich und nur ein In-Process-Cache. Der Second-Level-Cache bietet eine austauschbare Architektur, was bedeutet, dass ein Cache eines Drittanbieters als Second-Level-Cache für Hibernate verwendet werden kann.

NCache bietet Hibernate Second Level Cache-Anbieter, der ohne Änderungen am Code konfiguriert werden kann. Auf diese Weise erhalten Sie Zugriff auf die zahlreichen verteilten Caching-Funktionen, die von bereitgestellt werden NCache.

NCache als Second-Level-Cache-Anbieter für den Ruhezustand
Abbildung 1: NCache als Second-Level-Cache-Anbieter für den Ruhezustand

Einrichtung NCache als Second Level Cache für Hibernate

Einrichten NCache da der Second Level Cache für Hibernate recht einfach ist. Es sind keine Änderungen am eigentlichen Code erforderlich. Lediglich die Konfigurationsdateien müssen bearbeitet werden.

Nun zum Hinzufügen NCache als Second Level Cache für Hibernate muss die hibernate.cfg.xml wie folgt bearbeitet werden:

  • 2nd Der Level-Cache muss durch Setzen von aktiviert werden hibernate.cache.use_second_level_cache Eigenschaft als wahr.
  • NCache muss als Second-Level-Cache-Provider von Hibernate konfiguriert werden hibernate.cache.region.factory_class Eigenschaft als JCacheRegionFactory für Hibernate 3.6 und höher.

Hier ist ein Beispiel für die Änderungen, die in der vorgenommen wurden hibernate.cfg.xml Datei:

<hibernate-configuration>
  <session-factory>
    <property name="hibernate.cache.use_second_level_cache">true</property>
    <property name="hibernate.cache.region.factory_class">JCacheRegionFactory</property>
    ...
</session-factory>
</hibernate-configuration>

Konfiguration der Cache-Regionen

Hibernate nutzt Cache-Regionen zum Aufbewahren von Gegenständen. NCache ermöglicht die Konfiguration dieser Cache-Regionen mit unterschiedlichen Eigenschaften. Das NCacheZu diesem Zweck wird die Datei Hibernate.xml verwendet. Diese Datei enthält alle Konfigurationseinstellungen und Optionen für Regionen und zugehörige Konfigurationen, die von verwendet werden NCache.

Nachfolgend ein Beispiel NCacheHibernate.xml-Konfigurationsdatei, in der Regionen konfiguriert werden:

<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
    <cache-regions>
        <region name="hibernator.BLL.Customer:Customer" cache-name="myPartitionedcache" priority="BelowNormal" expiration-type="Absolute" expiration-period="8"/>
        <region name="DefaultRegion" cache-name="myPartitionedcache" priority="default" expiration-type="none" expiration-period="0" />
    </cache-regions>
	...
</application-config>
</configuration>

Konfiguration der Datenbanksynchronisierung

NCache ist ein vielseitiger, effizienter und effektiver verteilter Cache für .NET Framework, .NET Core, und Java. Es kommt mit einer breiten Palette von Features und Funktionalitäten. Eine dieser Funktionen ist die Datenbanksynchronisierung durch SQL-Abhängigkeit. Hier überprüft der Cache die Datenbank auf Änderungen und lädt oder entfernt die Elemente, die veraltet oder redundant sind.

Sie haben die Möglichkeit zu konfigurieren NCache als Second-Level-Cache-Anbieter für Hibernate, um die Datenbanksynchronisierungsfunktion zu verwenden. Sie müssen die folgenden Änderungen auf die anwenden NCacheRuhezustand.xml Datei:

<configuration>
<application-config application-id="myapp" enable-cache-exception="true" default-region-name="DefaultRegion" key-case-sensitivity="false">
  	... 
    <database-dependencies>
        <dependency entity-name="hibernator.BLL.Customer" type="oracle" sql-statement="select ContactName from Customer where CustomerID ='?'" cache-key-format="hibernator.BLL.Customer#[pk]" connection-string="Your Connection String"/>
    </database-dependencies>
</application-config>
</configuration>

Hibernate-Abfrage-Cache-Konfiguration

Hibernate bietet eine Funktion von Abfrage-Caching. Hier werden die Ergebnisse der Abfragen im Second Level Cache zwischengespeichert. NCache ermöglicht es Ihnen, solche Abfragen mit dieser Funktion zwischenzuspeichern. Diese Funktion kann durch Bearbeiten der aktiviert werden hibernate.cfg.xml Datei folgendermaßen:

<hibernate-configuration>
  <session-factory>
  ...
  <property name="hibernate.cache.use_query_cache">true</property>
  </session-factory>
</hibernate-configuration>

Durch das Aktivieren des Abfrage-Cache wird standardmäßig nicht jede Abfrage zwischengespeichert. Stattdessen müssen Abfragen, die zwischengespeichert werden müssen, im Code zwischengespeichert werden. Um eine Abfrage cachefähig zu machen, rufen Sie beim Erstellen der Abfrage die Funktion setCacheable(true) der Abfrage auf. Der folgende Code ist ein Beispiel für eine zwischenspeicherbare Abfrage:

List customerEnumerator = session.createQuery("from Customer c").setCacheable(true).list(); 

Vorteile der Verwendung von NCache als Second Level Cache für Hibernate

Im Folgenden sind die Hauptgründe dafür aufgeführt NCache ist eine geeignete Option, um als Second Level Cache für Hibernate verwendet zu werden, wenn die Anwendung in einer Umgebung mit mehreren Servern ausgeführt wird.

  • Lineare Skalierbarkeit: Ihre Bewerbung kann linear skaliert mit NCache durch Hinzufügen weiterer Cache-Server. Dadurch erhöhen Sie nicht nur Ihre Speicherkapazität, sondern auch Ihre Transaktionsgeschwindigkeit.
  • Flexibler Cache: NCache ist ein sehr flexibler Cache, was bedeutet, dass er seinen Benutzern eine reichhaltige Auswahl an Caches bietet Caching-Topologien B. Spiegeltopologie, replizierte Topologie, Partitionstopologie und Partition der Replikattopologie. Jede Topologie ist auf ein bestimmtes Szenario und einen bestimmten Bedarf ausgerichtet und dadurch flexibel.
  • Datenbanksynchronisierung: Du hast die Option zu Synchronisieren Sie Ihren Cache mit der Datenbank B. SQL Server, Oracle usw. Auf diese Weise überprüft der Cache die Datenbank auf Änderungen und entfernt oder behält Elemente im Cache basierend auf dieser Änderung. Dadurch wird sichergestellt, dass Ihr Cache Artikel enthält, die immer aktuell sind.
  • Asynchrone Operationen: Asynchrone Operationen sind in NCache. Diese Vorgänge ermöglichen es Ihnen, an Ihrer Anwendung zu arbeiten, ohne auf die Aktualisierung des Cache warten zu müssen, wodurch alles schnell geht. Diese Vorgänge können mit Hibernate aktiviert werden.

Was macht man als nächstes?

© Copyright Alachisoft 2002 - Alle Rechte vorbehalten NCache ist eine eingetragene Marke der Diyatech Corp.